let a = ''; // False 출력
let b = "string"; // True 출력
if(a) {
console.log("True");
} else {
console.log("False");
}
자바스크립트에서는 boolean 값을 넣지 않아도 참이나 거짓으로 인식되는 속성이 있다.
빈 배열은 True로 undefined는 false로 인식한다.
빈배열, "0", Infinity을 할당한 다음 조건식에 넣게되면 True로 평가한다.
이렇게 True가 아니여도 참으로 분류하는 자바스크립트의 값들을 Truthy라고 부른다.
반면, 변수에 아무 값도 할당하지 않은상태(let a;), undefined, 숫자 0, -0, NaN,""은 False에 해당한다.
const getName = (person) => {
return person.name;
};
let person = {name: "옥수수"};
const name = getName(person);
console.log(name); // 옥수수가 출력된다.
예외처리를 다음과 같이 해주어야 객체가 아닌 경우를 걸러내 줄 수 있다.
const getName = (person) => {
if (!person) { // false에 NOT을 붙이면 true가 되는 속성을 이용.
return "객체가 아니다";
}
return person.name;
}