es6에서는 Object 객체의 is() 메소드를 사용하여 두 객체가 동일한지 여부를 확인할 수 있습니다. 이 메소드는 두 변수의 값이 동일한지 여부를 감지하고 두 객체의 참조 주소가 있는지 확인합니다. "Object.is(Object 1, Object 2)" 구문은 부울 값을 반환합니다. 이는 두 개체가 동일함을 의미합니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, ECMAScript 버전 6, Dell G3 컴퓨터.
두 개의 개체 유형 개체는 속성과 값이 동일하더라도 == 또는 ===를 사용하여 비교할 때 동일한 것으로 간주되지 않습니다. 이는 값으로 비교되는 기본 유형과 달리 참조(메모리 내 위치)로 비교되기 때문입니다.
var obj1 = { name: "xiaoming", sex : "male" } var obj2 = { name: "xiaoming", sex : "male" } console.log(obj1 === obj2); // false
하지만 ES6에서는 두 개체의 참조 주소가 일치하는지 확인하는 방법을 제공합니다.
Object.is(a,b)
Object.is() 메서드는 두 값이 일치하는지 확인합니다. 같은 값. 다음 조건이 충족되면 두 값은 동일합니다.
은 모두 정의되지 않았습니다.
은 모두 null입니다.
은 둘 다 true 또는 false입니다.
은 둘 다 길이가 같고 동일한 문자열입니다. 문자의 순서가 동일합니다.
가 모두 동일한 개체로 배열됩니다(각 개체의 참조가 동일함을 의미)
는 모두 숫자이고
은 모두 +0이고
은 모두 -0입니다.
은 모두 NaN
이거나 0이 아니고 NaN도 아니고 동일한 값입니다
반환 값: 두 매개변수가 동일한 값인지 여부를 나타내는 부울 유형입니다.
예 1:
let obj1= { a: 1 } let obj2 = { a: 1 } console.log(Object.is(obj1, obj2)) // false let obj3 = obj1 console.log(Object.is(obj1, obj3)) // true console.log(Object.is(obj2, obj3)) // fals
예 2:
Object.is('foo', 'foo') //true Object.is(window, window) //true Object.is([], []) //false Object.is(null, null) //true
확장 지식:
Object.is() 메서드는 ==(en-US) 작업과 다릅니다. == 연산자는 동등성을 판단하기 전에 변수를 양쪽에 캐스팅합니다(동일한 유형이 아닌 경우)(이 동작의 결과는 "" == false를 true로 판단함). 반면 Object.is는 변수를 캐스팅하지 않습니다. 양측 가치.
Object.is() 메서드도 ===(en-US) 작업과 다릅니다. === 연산자(== 연산자도 포함)는 숫자 -0과 +0을 동일하게 처리하고 Number.NaN과 NaN을 동일하지 않은 것으로 처리합니다.
[관련 권장 사항: javascript 비디오 튜토리얼, 웹 프런트 엔드]
위 내용은 es6에서 두 객체가 동일한지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!