JS에서 조건문과 논리 연산자를 사용할 때 특정값들은
true
나false
로 자동 변환된다. 이때true
로 변환되는 값들을 truthy값false
로 변환되는 값들을 falsy값이라고 한다
true: true 키워드
"string": 비어 있지 않은 문자열
[]: 빈 배열
{}: 빈 객체
function() {}: 비어 있지 않은 함수
false: false 키워드
null: null 키워드
undefined: undefined 키워드
0: 숫자 0
-0: 숫자 -0
NaN: NaN (Not a Number)
따라서 if
나 while
과 같은 조건문에서 변수 또는 값이 truthy하거나 falsy한지 확인하고자 할 때, 명시적으로 === true
나 === false
와 같이 표현할 필요 없이, 그냥 변수나 값 자체를 조건식에 넣어서 사용한다
예를 들어, 다음과 같은 코드에서 value
가 truthy한 값인 경우 console.log()
문이 실행
let value = "hello";
if (value) {
console.log("value is truthy");
}
그리고 다음과 같은 코드 value
가 falsy한 값인 경우 console.log()
문이 실행되지 않는다
let value = null;
if (!value) {
console.log("value is falsy");
}