falsy 한 값
falsy한 값이란 if의 조건식으로 평가되었을 때 false로 취급되는 값이다. 쉽게 말하면 if ( ? ) { } 에서 ? 조건이 false로 계산되는 값이다.
예를 들면
if( 'hello') {
console.log('hello~~');
}
와 같은 상황에서 'hello'는 false로 판단될까? 아니면 true로 판단될까? 자바스크립트에서는 true로 판단된다.
falsy한 값은 다음과 같다.
undefined, null, 0, '', NaN
let a ;
let b = null;
let c = 0;
let d = '';
let e = a+ b;
이를 실제로 확인하는 방법은 !!a 처럼 !!를 붙여서 확인하는 방법이다. 또는 a ? true: false로 삼항 연산자를 사용해서 확인할 수도 있다.
활용하는 방법은 어떤 것이 있을까?
function get_name(obj){
return obj && obj.name;
}
위와 같이 사용하면 obj가 undefined일 때는 뒤의 obj.name을 확인하지 않고 리턴한다. 따라서, obj가 truthy한 값일 때만 obj.name을 리턴해준다.
또는 falsy한 값이 올 때 사용할 값이 있다면 return variable1 || "falsy value"; 와 같이도 사용할 수 있다.
switch case 대신 객체를 활용할 수도 있다.
function getSound(animal){
const sounds = { 개: '멍멍!', 고양이: '야용~', 참새: '짹짹' };
return sounds[animal] || ' ...??? ';
}