Skip to content
On this page

동일성(equality)

Title
동일성(equality)
Category
JavaScript
Tags
Aliases
동일성(equality)참조 동일성비교
Related
Created
2 years ago
Updated
last year

JavaScript의 동일성 비교에는 여러 가지 방법이 있다.

  • == (동등 연산자) : 추상 비교(Abstract equality) 또는 느슨한 비교(Loose equality) 또는 동등 비교
  • === (엄격 동등 연산자) : 엄격 비교(Strict equality) 또는 일치 비교
    • 동등 비교와 비슷하지만 형 변환을 하지 않는다.
  • Object.is : 등가 비교(Same value equality)
    • 엄격 동등 비교와 두 가지 케이스를 제외하고 동일하다.
Object.is===
NaN === NaNtruefalse
-0 === 0falsetrue

참조 동일성

객체 비교 시 동등 연산자(==)와 일치 연산자(===)는 동일하게 동작한다. 비교 시 피연산자인 두 객체가 동일한 참조를 가르키는 경우에 true를 반환한다.

두 변수가 같은 객체를 참조하는 예시

js
let a = {};
let b = a; // 참조에 의한 복사

console.log(a == b); // true, 두 변수는 같은 객체를 참조합니다.
console.log(a === b); // true
let a = {};
let b = a; // 참조에 의한 복사

console.log(a == b); // true, 두 변수는 같은 객체를 참조합니다.
console.log(a === b); // true

두 변수가 독립된 객체를 참조하는 예시

js
let a = {};
let b = {}; // 독립된 두 객체

console.log(a == b); // false
console.log(a === b); // false
let a = {};
let b = {}; // 독립된 두 객체

console.log(a == b); // false
console.log(a === b); // false

References

Released under the MIT License.