이상한 JavaScript 동작을 설명 할 수 있습니까?비교 연산자의 이상한 동작 빈 배열을 사용할 때 자바 스크립트
첫째 :
[] === [] false
[] == [] false
왜 거짓? 객체는 동일하므로 true를 반환해야합니다.
둘째 : 다시
[] !== [] true
[] != [] true
, 왜 사실? 객체는 동일합니다.
이상한 JavaScript 동작을 설명 할 수 있습니까?비교 연산자의 이상한 동작 빈 배열을 사용할 때 자바 스크립트
첫째 :
[] === [] false
[] == [] false
왜 거짓? 객체는 동일하므로 true를 반환해야합니다.
둘째 : 다시
[] !== [] true
[] != [] true
, 왜 사실? 객체는 동일합니다.
그들은 동일하지 않습니다. Object identity은 동일한 인스턴스를 가리키는 두 피연산자로 정의됩니다.
var a = [],
b = [];
a == b; // false
a == a; // true
두 개의 리터럴은 항상 두 개의 다른 인스턴스로 평가됩니다. 두 인스턴스는 동일한 것으로 간주되지 않습니다. 구조적 동일성을 찾으려면 How to compare arrays in JavaScript?을 참조하십시오.
개체는 이 아니며은 동일합니다. 이 경우 객체에 대한 참조를 비교합니다. 쉽게 말해서 이러한 객체가있는 메모리의 주소를 비교할 수 있습니다. 이 규칙은 실제 값을 비교하는 기본 요소와 관련이 없습니다.
개체가 아닌 값을 비교할 수 있습니다. – user10