2015-01-14 3 views
1

에 다음 코드가 -이해 새 개체() 자바 스크립트

var a = new Object(); 
var b = {}; 
console.log(a == b || a === b); 

을 그리고 false를 인쇄합니다. 이 이유는 무엇입니까?

+1

'=='[* 추상 추상 비교 알고리즘 *] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.3)을 사용하면'==='는 [* 엄격한 평등 비교 알고리즘 *] (http://ecma-international.org/ecma-262/5.1/#sec-11.9.6). 그들은 이해하기가 어렵지 않습니다. 평가되는 값의 유형이 동일한 경우 (이 경우 Object) 정확히 똑같은 일을합니다. – RobG

답변

1

개체의 평등을 비교할 때 두 개체가 같은 인스턴스인지 비교합니다 (비교하는 변수가 동일한 메모리를 참조 함을 의미).

두 개의 서로 다른 인스턴스가 있으므로 평등 비교가 false가됩니다.

두 개체의 모든 속성이 동일한 값을 갖고 있는지 확인하려면 다른 개체이며 각 개체 속성에 대한 등가성을 확인해야합니다.

6

개체를 비교할 때 같은 개체인지 테스트합니다.

두 개의 서로 다른 (사실은 동일하지만) 객체가 있습니다.

+0

이 유형을 비교하고 싶다면'instanceof' ...'console.log (instanceof Object);를 사용하면됩니다. ' –

+0

아니요, 객체의 값을 비교하고 싶었습니다. – jaibatrik

+0

귀하의 대답은 정확합니다. 하지만 내게 대답 해 보라. 첫 번째 것은 물체의 인스턴스가 아니며 두 번째 물체는 단지 빈 물체인가? – Michelangelo