Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 "if('0' ==false)"는 false와 같지만 "if(0)" 문에서는 true를 제공하는 이유는 무엇입니까?


조건을 하나씩 살펴보자 -

if(‘0’ == false)

다음 규칙을 따릅니다 -

If Type(y) is Boolean, return the result of the comparison x == ToNumber(y)

==는 강제 변환을 수행합니다. 이는 두 피연산자의 유형과 일치하도록 명시적 유형 변환이 요청됨을 의미합니다. 왼쪽 '0'은 숫자 0으로 변환됩니다. 두 숫자를 비교할 때 0은 0이므로 결과는 참입니다. 이 경우 비교되기 전에 강제 변환되었기 때문에 '0' 문자열의 참/거짓 특성을 암시하지 않으므로 작동하지 않습니다.

if(0)

이는 문자열이 0인지 아닌지가 아니라 null인지 비어 있는지 확인합니다. 항상 기억하십시오. 비어 있지 않은 문자열은 true입니다. 문자열은 자체 장점에 따라 참 또는 거짓으로 평가될 수 있으므로 여기서 형식 강제 변환이 사용되지 않습니다.