let myVariable = 'I Exist!';
if (myVariable) {
console.log(myVariable)
} else {
console.log('The variable does not exist.')
}; //콘솔에서 I Exist! 출력
변수가 값을 할당받았는지 여부를 확인할 수 있다.
위 코드에서 if 문은 myVariable이 true 값을 가지기 때문에 실행된다. myVariable의 값이 명시적으로 true가 아니더라도 불리언 또는 조건부 컨텍스트에서 사용될 경우 non-falsy 값이 할당되었기 때문에 true로 평가된다.
그렇다면 어떤 값이 false로 평가될까?
0
""
혹은 ''
null
(값이 존재하지 않을 때)undefined
(선언된 변수에 값이 없는 경우)NaN
혹은 숫자가 아닐 때(문자를 숫자로 나눈다거나 등) let numberOfApples = 0;
if (numberOfApples){
console.log('Let us eat apples!');
} else {
console.log('No apples left!');
}
// Prints 'No apples left!'
위 코드의 경우 값이 0으로 할당되었기 때문에 false로 평가된다.
let username = '';
let defaultName = username || 'Stranger';
console.log(defaultName); // Prints: Stranger
위 코드의 경우 ||
연산자는 왼쪽 조건을 먼저 확인하기 때문에
만약 username이 true 값(non-falsy)이면 할당된 값을 출력할 것이고, 그게아니라 false 값이면 'stranger'를 출력할 것이다.
let username = '';
let defaultName;
if (username) {
defaultName = username;
} else {
defaultName = 'Stranger';
}
console.log(defaultName); // Prints: Stranger
단축하여 표현하지 않을 경우 위 코드와 같다.