2016-10-04 2 views
2

누군가이 비교 문을 설명 할 수 있습니까? & & 및 || 하지만 하나 라이너 아래자바 스크립트 비교 문

typeof(varName) === 'undefined' == 0 
+1

을 오는가 어디? 그것은 끔찍한 것이기 때문에. 나는 그것을 축소와 같은 것으로 기대할지도 모르지만 확실히 축소되지는 않았습니다. – vlaz

+0

이것을보십시오 : http://www.w3schools.com/js/js_comparisonsasp – Sparrow

+0

어쨌든'varName === "undefined' (대괄호는 불필요하고 불필요합니다)는'varName'이'undefined'인지 검사 할 것입니다. 그런 다음 _that_의 결과가 0인지 느슨하게 검사됩니다. 이는 false인지 확인하는 것과 같습니다. – vlaz

답변

4

뭔가 다른 varName이 정의라고 말할 수 있습니다 않습니다. 코드의 귀하의 라인 (각각의 새로운 라인은 다음 단계) 다음과 같이 진행됩니다

typeof(varName) === 'undefined' == 0 
typeof(5) === 'undefined' == 0 
'number' === 'undefined' == 0 
false == 0 
true 

이것은 나쁜 코드 :

typeof(varName) === 'undefined' == 0 
typeof(undefined) === 'undefined' == 0 
'undefined' === 'undefined' == 0 
true == 0 
false 

지금 varName5에 동일하게 정의되어 있다고 할 수 있습니다. 당신은 위의 표현도

!(typeof(varName) === 'undefined') 

대신 하지 연산자 (!)가 == 0을 사용한를 사용하여 같이 쓸 수있다 typeof(varName) !== 'undefined'

+0

설명해 주셔서 감사합니다. –

0
typeof(varName) === 'undefined' == 0 

과 같은 결과를 얻을 수 있습니다. 그러나 ===0을 수행하면 데이터 유형을 검사하고 항상 false을 반환하기 때문에 작동하지 않습니다.

예 :

true == 0 => false 
false == 0 => true 

하지만 당신은 ===

true === 0 => false 
false === 0 => false 

주를 사용하는 경우 : typeof(varName) === 'undefined' == 0이 그것을 할 수있는 나쁜 방법입니다.

사용하지 운영자 : 그 코드에서

!(typeof(varName) === 'undefined')