JavaScript의 Falsey 값
false
- 제로
Number유형 : 0도 -0, 0.0그리고 진수 양식 0x0( 감사 RBT )
BigInt유형의 제로 : 0n및 -0n(2020의 새로운 기능, GetMeARemoteJob 덕분에 )
"", ''및 ``- 길이의 문자열을 0
null
undefined
NaN
document.all (HTML 브라우저에서만)
- 이것은 이상한 것입니다.
document.allfalsey 객체에 인 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.allJavascript가 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서로 비교 ==.