사양에 따릅니다.
12.5 if 문
.....
2. ToBoolean (GetValue (exprRef))이 true이면
ㅏ. 첫 번째 진술을 평가 한 결과를 반환하십시오.
3. 그렇지 않으면
....
사양에 따라 ToBoolean은
추상 작업 ToBoolean은 인수를 표 11에 따라 Boolean 유형의 값으로 변환합니다.
그리고 그 테이블은 문자열에 대해 이것을 말합니다 :
인수가 빈 문자열 (길이가 0) 인 경우 결과는 false입니다. 그렇지 않으면 결과는 사실이다
이제 "0" == false
평등 연산자를 읽어야 하는 이유를 설명하기 위해 추상 연산에서 값을 가져 오는 GetValue(lref)
오른쪽과 동일합니다.
이 관련 부분을 다음과 같이 설명합니다.
IsPropertyReference (V)이면
ㅏ. HasPrimitiveBase (V)가 false 인 경우 기본 [[Get]] 내부 메소드가되도록하고 그렇지 않으면 get
아래에 정의 된 특별한 [[Get]] 내부 메소드 여야합니다.
비. base를이 값으로 사용하여 get internal 메소드를 호출하고 전달한 결과를 리턴합니다.
인수에 대한 GetReferencedName (V)
즉, 문자열에는 기본 getbase가 있는데,이 함수는 내부 get 메소드를 호출하고 false로 보입니다.
GetValue 연산 use를 사용하여 사물 ==
을 평가하려면 ToBoolean
을 사용 하여 평가하려는 경우 ===
( "strict"항등 연산자라고도 함)
"0"
문자열이며 비어 있지 않으므로 true로 평가됩니다.