2011-08-03 6 views
1

가능한 중복 :
Javascript === vs == : Does it matter which “equal” operator I use?자바 스크립트, 이상한 비교 연산자

내가 만난 "==!"몇 가지 크롬 확장 프로그램의 소스 코드에서 이상한 비교 연산자. 코드 스 니펫 :

function closedTab(id) { 
    if (openedTabs[id] !== undefined) { 
     openedTabs[id].time = timeNow(0); 
     closedTabs.unshift(openedTabs[id]); 
    } 
} 

이 연산자는 한 번 사용되지 않으므로 몇 가지 의미가 있습니다.

일부 JavaScript 매직에서 "! =="이 왔습니까? 아니면 보통 "! ="과 동일합니까? 감사합니다.

+2

참조 http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-use –

답변

4

차이점은 !==은 비교하기 전에 피연산자를 같은 유형으로 변환하려고 시도하지 않는다는 것입니다. =====과 동일합니다. 이것은 엄격한 비교 연산자라고 Difference between == and === in JavaScript

2

곳 값뿐만 아니라 유형에 대한 그것뿐만 아니라 검사 :

이 질문을 참조하십시오.

3

! == 동일성 비교 연산자가 아닙니다. !

= 두 가지 유형이

일치하도록 강요합니다 == 두 가지 유형의 몇 가지 예를 들어

강요하지 않습니다! 차이는 때 값을 무슨 일에서 오는

3 == "3" // true - the operands are coerced to the same type, then compared and they match 
3 === "3" // false - the operands are not coerced to the same type, so do not match 
3 != "3" // false 
3 !== "3" // true 
2

을 다른 유형입니다.

연산자 !== 연산자 (및 해당 사촌 ===)는 값과 유형이 동일한 지 확인합니다. !===은 평등을 확인하기 전에 값이 동일하도록 강제 해석하십시오. 예를 들어

는 :

if(5 === "5")  // evaluates to false 
if(5 == "5")  // evaluates to true 

동일한 개념 및 !=

2

그것은 동일한 비교 조작 !==으로 연장된다. 그것은 가치와 유형을 비교합니다. 예 :

if('foobar' == true) // true 
if('foobar' === true) // false