2016-06-27 4 views
0

내가null == 0은 모두 false 값이므로 false를 출력하는 이유는 무엇입니까?

null == 0 

또는

0 == null 

두 출력이 모두 falsey 값 경우에도 거짓을 실행, 왜?

+2

왜'1 == 2' 출력을한다 둘 다 진리 값이더라도 거짓인가? – JJJ

+1

@ Juhana 유형이 동일하고 규격 별이므로 http://www.ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison (3 절) 유형이 동일하면 엄격한 동일성이 수행됩니다. – gurvinder372

+2

_ 객체가 숫자 또는 문자열과 비교되면 JavaScript는 객체의 기본값을 반환하려고 시도합니다. 연산자는 객체의 valueOf 및 toString 메소드를 사용하여 객체를 원시 값인 String 또는 Number 값으로 변환하려고 시도합니다. 이 객체를 변환하려는 시도가 실패하면 런타임 오류가 발생합니다. _ _Bergi_가 말했듯이 _'Null' 및'Undefined' 유형은 완전히 자신과 동일하고 추상적으로 서로 같습니다. [Ref] (https : // developer .myilla.org/ko-US/docs/Web/JavaScript/Reference/Operators/Comparison_Operators) _ – Rayon

답변

-1

==뿐만 아니라 값뿐만 아니라 유형 (그리고 === 같은 방식으로) 당신은 여기에서 자세한 내용을 참조 할 수 확인 않습니다 The Abstract Equality Comparison Algorithm

+0

만약 u를 사용한다면 === 여전히 여전히 거짓 만 –

+0

== 값만 검사 === 데이터 유형을 확인합니다 –

+0

아니요, 여기를 확인하면 == 연산자로 여러 유형의 검사가 수행되는 것을 볼 수 있습니다 : http : //es5.github.io/#x11.9.3 – mdcarter