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
단축하여 표현하지 않을 경우 위 코드와 같다.