펭귄집

객체비교


동등연산자(==)를 사용하여 두 객체를 비교할 때도 객체의 프로퍼티 값이 아닌 참조값을 비교한다는 것을 알아야 한다.


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 -> 


참고문헌 : <인사이트자바스크립트>


'전공서적 > 인사이드자바스크립트' 카테고리의 다른 글

Javscript배열 리터럴  (0) 2017.11.13
배열  (0) 2017.10.26
함수 호이스팅  (1) 2017.08.31
자바스크립트 참조타입(객체타입)  (0) 2017.08.30
null 과 undefined  (0) 2017.08.30