Table Of Contents
자바스크립트는 불리언 자료형의 참(true)이나 거짓(false)이 아닌 값도 상황에 따라 참, 거짓으로 평가하는 특징이 있습니다. 자바스크립트의 이런 특징을 ‘truthy&falsy’라고 하는데, 매우 유용하게 쓰입니다.
truthy & falsy 한 값
자바스크립트에서는 어떤 값을 ‘거짓’으로 판별하고(falsy), 참으로 평가하는지(truthy) 살펴보겠습니다.
falsy한 값이란 불리언 자료형의 거짓(false)은 아니지만 거짓과 같은 의미로 쓰이며, 조건식에서 거짓(false)으로 평가합니다. falsy한 값으로는 undefined, null, 0, -0, NaN, "", 0n 7가지가 있습니다. 코드샌드박스에서 다음 예제를 실행해 보면 쉽게 이해할 수 있습니다.
코드를 불러오는 중 입니다 ...undefined, null, 0n, 0, -0, NaN, " "(빈 문자열)은 모두 조건식에서 거짓(false)으로 평가되는 falsy한 값입니다. 따라서 이 값 앞에 ! 연산자를 붙이면 참이 되어 if 문을 수행합니다. 마지막 if 문의 큰따옴표(" ") 대신 작은따옴표('')나 백틱(``)으로 만든 빈 문자열도 똑같은 의미입니다.
0n은 무슨 값인가요?
0n은 BigInt 자료형의 값입니다. BigInt는 길이 제약 없이 정수를 다룰 수 있는 숫자 자료형 입니다.
truthy한 값은 불리언 자료형의 참(true)은 아니지만 참과 같은 의미로 쓰이며, 조건식에서 참(true)으로 평가됩니다. falsy한 값을 제외한 모든 값은 truthy한 값이라 생각하면 쉽게 이해할 수 있습니다.
코드를 불러오는 중 입니다 ...문자열 "false"는 불리언 자료형의 false가 아닙니다. 빈 문자열("")은 제외하고, 문자열은 그 자체로 truthy한 값이며 조건식에서 참(true)으로 평가합니다.
truthy & falsy 응용하기
truthy 또는 falsy한 값은 조건식을 간결하게 만듭니다. 자주 활용되는 세 가지 응용 예를 살펴보겠습니다.
‘값이 비었다’는 의미는 특정 변수의 값이 undefined나 null일 때 쓰이는 표현입니다. undefined나 null 값 모두 falsy하기 때문에 조건문에서 특정 변수에 값이 있는지 없는지 확인할 때 사용합니다.
코드를 불러오는 중 입니다 ...변수 varA는 선언만 하고 값을 할당하지 않았으므로 undefined 값입니다. undefined는 falsy한 값으로 조건식에서 거짓으로 평가합니다. 따라서 콘솔에는 값이 없음을 출력합니다.
숫자 자료형에서는 0과 -0 그리고 NaN을 제외한 모든 값은 truthy합니다. 따라서 조건문에서 특정 변숫값이 0, -0 또는 NaN인지 확인할 때 사용합니다.
코드를 불러오는 중 입니다 ...빈 문자열을 제외한 모든 문자열은 truthy한 값입니다. 조건문에서 문자열이 공백인지 아닌지 확인하는 용도로 자주 사용합니다.
코드를 불러오는 중 입니다 ...