자바스크립트의 조건식에는 boolean 형 값을 넣지 않아도 참이나 거짓으로 인식되는 속성이 있다.
- Truthy : 자바스크립트가 조건식에서 참으로 평가하는 타입
- 빈 배열 [ ]
- 객체 리터럴 { }
- 숫자형, Infinity (양의 무한대)
- 문자열
- Falsy : 자바스크립트가 조건식에서 거짓으로 평가하는 타입
- null
- undefined
- 숫자 0, 숫자가 아님을 의미하는 NaN
- “” (빈 문자열)
EX)
//객체를 매개변수로 받아서, 받은 객체에서 특정한 프로퍼티를 반환하는 프로그램
const getName = (person) => {
return person.name;
};
let person; //여기서 person은 undefined type이 된다.
const name = getName(person);
console.log(name);
⇒ person.name 에서, undefined (person)은 객체가 아니므로 프로퍼티가 없다. 따라서 여기서 에러가 발생한다.
const getName = (person) => {
return person.name;
};
let person = {};
const name = getName(person);
console.log(name);
⇒ 에러가 발생하지 않고 undefined이 출력된다.
const getName = (person) => {
if (person===undefined || person===null){
return "객체가 아닙니다";
}
return person.name;
};
let person=null;
const name = getName(person);
console.log(name);
⇒ if 문을 이용하여 에러를 처리하기에는 한계가 존재함
const getName = (person) => {
if (!person){
// false NOT => True
return "객체가 아닙니다";
}
return person.name;
};
let person=null;
const name = getName(person);
console.log(name);
⇒ null, undefined의 falsy한 속성을 이용해 조건식을 간단하게 줄일 수 있다.
'프론트엔드 > Java Script' 카테고리의 다른 글
JavaScript Sec 02_3 단락회로 평가 (0) | 2024.02.20 |
---|---|
JavaScript Sec02_2 삼항 연산자 (0) | 2024.02.20 |
JavaScript Sec01_12 배열 내장함수 (0) | 2024.02.20 |
JavaScript Sec01_11 반복문 (0) | 2024.02.20 |
JavaScript Sec01_10 배열 (0) | 2024.02.20 |