전공서적/인사이드자바스크립트
객체비교
kmjkmj2005
2017. 10. 25. 10:35
객체비교
동등연산자(==)를 사용하여 두 객체를 비교할 때도 객체의 프로퍼티 값이 아닌 참조값을 비교한다는 것을 알아야 한다.
var a = 100;
var b = 100;
var objA = { value : 100 };
var objB = { value : 100 };
var objC = objB;
1번
console.log(a == b);
2번
console.log(objA == objB);
3번
console.log(objB == objC);
출력값
1번
console.log(a == b); //(출력값) true
2번
console.log(objA == objB); //(출력값) false
3번
console.log(objB == objC); //(출력값) true
1번
a와 b는 숫자100을 저장하고 있는 기본타입의 변수
기본타입으 경우 동등 연산자(==)를 이용해서 비교할때 값을비교
두 변수 모두 100이라는 동일한 값을 가지고 있으므로 a==b의 결과가 true
2번
아래그림처럼 objA와 objB는 다른객체지만 같은 형태의 프로퍼티값을 갖고있음
하지만 동등연산자(==)로 두 객체를 비교하면 1번과 다르게 결과가 false
-> 이유는 1번처럼 기본타입의 경우는 값 자체를 비교해서 일치여부를 판단하지만, 객체와 같은 참조타입의 경우는 참조값이 같아야 true
objA -> value : 100
objB ->
value : 100
objC ->
참고문헌 : <인사이트자바스크립트>