Language/JavaScript

Falsy / Truthy

Reife 2023. 1. 2.

다음 세 조건문은 동작할까요?

// 1
if ('') {...}

// 2
if (' ') {...}

// 3
if ('anything') {...}

1번은 동작하지 않고, 2, 3번은 동작합니다. 왜 그럴까요?

JavaScript가 빈 문자열 ''은 false로, 공백이 포함된 문자열 ' '과 문자열 'anything'을 true로 판별하였기 때문입니다.

JavaScript에는 Falsy(거짓 같은 값)와 Truthy(참 같은 값)라는 문법 개념이 있습니다. Falsy와 Truthy는 JavaScript가 특정 값의 참/거짓을 판단할 때, 주어진 값이 Boolean 자료형이 아니거나, Boolean 비교가 불가능한 경우 true 또는 false로 변환되는 값을 뜻합니다. True 가 아닌데 JavaScript에 의해 true로 타입 변환되는 값은 truthy, false가 아닌데 JavaScript에 의해 false로 타입 변환되는 값은 falsy입니다.

 

다음은 JavaScript의 Truthy, Falsy를 나타낸 표입니다.

true or false truthy or falsy
0 false falsy
0을 제외한 모든 수 true truthy
빈 문자열 "" false falsy
비어있지 않은 모든 문자열 true truthy
{},[], 배열을 포함한 모든 객체(Objects) true truthy
null, undefined, NaN false falsy

 

 

References

https://developer.mozilla.org/ko/docs/Glossary/Truthy

 

참 같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

JavaScript에서, 참 같은 값(Truthy)인 값이란 불리언을 기대하는 문맥에서 true로 평가되는 값입니다. 따로 거짓 같은 값으로 정의된 값이 아니면 모두 참 같은 값으로 평가됩니다. (예: false, 0, -0, 0n, "

developer.mozilla.org

https://developer.mozilla.org/ko/docs/Glossary/Falsy

 

거짓같은 값 - MDN Web Docs 용어 사전: 웹 용어 정의 | MDN

거짓 같은 값(Falsy, falsey로 쓰이기도 함) 값은 불리언 문맥에서 false로 평가되는 값입니다.

developer.mozilla.org

 

'Language > JavaScript' 카테고리의 다른 글

자바스크립트(JavaScript)  (0) 2023.03.12
호이스팅(Hoisting)  (0) 2023.03.06
Node & Element (작성중)  (0) 2023.02.15
전역 객체 Window & Document (작성중)  (0) 2023.02.15

댓글