JavaScript의 Falsey 값
false
- 제로
Number
유형 : 0
도 -0
, 0.0
그리고 진수 양식 0x0
( 감사 RBT )
BigInt
유형의 제로 : 0n
및 -0n
(2020의 새로운 기능, GetMeARemoteJob 덕분에 )
""
, ''
및 ``
- 길이의 문자열을 0
null
undefined
NaN
document.all
(HTML 브라우저에서만)
- 이것은 이상한 것입니다.
document.all
falsey 객체에 인 typeof
등 undefined
. IE11 이전의 IE에서는 Microsoft 고유의 기능으로, HTML 사양에 "자바 스크립트 사양을 고의적으로 위반하는 것" 으로 추가되어 IE 용으로 작성된 사이트는 액세스하려는 시도를 중단하지 않습니다 document.all.something
. if (document.all)
조건부 주석 전에 IE를 감지하는 대중적인 방법 이었기 때문에 허위 입니다. document.all이 왜 거짓입니까?를 참조하십시오 . 자세한 내용
"Falsey"는 단순히 JavaScript의 내부 ToBoolean
함수 가을 반환 한다는 의미입니다 false
. ToBoolean
의 기초 !value
, value ? ... : ...;
및 if (value)
. 여기의의 공식 사양 (2020 작업 초안) (만 허용 이후 변경 1997 년 최초의 ECMA 스크립트 사양 의 추가입니다 ES6의 기호 항상 truthy있다, 그리고 BigInt
, 위에서 언급 한 :

==
(느슨한 평등) 과의 비교
falsy 값 '에 대해 이야기 그것의 가치 와 느슨한 비교==
용도 ToNumber()
인해 기본 차이로 약간의 혼동을 일으킬 수. 그들은 효과적으로 세 그룹을 형성합니다 :
false, 0, -0, "", ''
모두와 서로 일치 ==
- 예를 들어
false == ""
, '' == 0
따라서4/2 - 2 == 'some string'.slice(11);
null, undefined
~와 일치하다 ==
- 예를 들어
null == undefined
있지만,undefined != false
- 그것은 동안 것 또한 언급 할만큼 가치의
typeof null
반환 'object'
, null
이다 이 오랜 버그 / 특질이며, 객체가 아닌 호환성을 유지하기 위해 고정되지 않았습니다. 실제 객체가 아니며 객체가 진실합니다 ( document.all
Javascript가 HTML로 구현 될 때 "고의 위반"제외 )
NaN
자체 와도 일치하지 않는 ==
또는===
- 예를 들어
NaN != NaN
, NaN !== NaN
, NaN != false
,NaN != null
"엄격한 평등"( ===
)을 사용하면 이러한 그룹이 없습니다. 만 false
===
false
.
이것은 많은 개발자와 많은 스타일 가이드 (예 : standardjs )가 선호 ===
하고 거의 사용하지 않는 이유 중 하나입니다 ==
.
실제로 참 가치 == false
"진실"은 단순히 JavaScript의 내부 ToBoolean
함수 가을 반환 한다는 것을 의미 합니다 true
. 자바 스크립트의 특질은 알고 있어야합니다 (다른 좋은 이유가 선호 ===
이상 ==
) : 그것은 가능하다 값이 (truthy 수에 대한 ToBoolean
반환 true
도), 그러나 == false
.
if (value && value == false) alert('Huh?')
일어날 수없는 논리적 불가능 이라고 생각할 수도 있지만 다음과 같은 경우에는 그렇게 될 것입니다.
"0"
그리고 '0'
-그들은 비어 있지 않은 문자열입니다. 진실하지만 Javascript ==
는 숫자가 동등한 문자열 (예 :) 과 일치합니다 42 == "42"
. 이후 0 == false
하다면 "0" == 0
, "0" == false
.
new Number(0)
그리고 new Boolean(false)
-그들은 진실한 물건이지만 ==
그들의 가치를 본다 == false
.
0 .toExponential();
-수치에 상당하는 객체 0
- 당신에게 진실한 유형으로 싸여있는 거짓 등가의 가치를주는 유사한 구조
[]
, [[]]
및 [0]
(감사 cloudfeet 에 대한 자바 스크립트 평등 표 링크 )
좀 더 진실한 가치
이들은 일부 사람들이 거짓을 기대할 수있는 몇 가지 가치에 불과하지만 실제로는 진실합니다.
true
, 1
, "1"
및 [1]
반환 true
서로 비교 ==
.