다음 세 조건문은 동작할까요?
// 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 |
댓글