Javascript

데이터 타입 비교

Object 타입의 비교

Object는 레퍼런스 형태로 값을 저장한다.

// object equality by reference
1. const ellie1 = { name: 'ellie' };
2. const ellie2 = { name: 'ellie' };
3. const ellie3 = ellie1;
4. console.log(ellie1 == ellie2);
5. console.log(ellie1 === ellie2);
6. console.log(ellie1 === ellie3);

위 코드에서 4,5,6 번줄의 값을 보면

4번에서 false가 출력된다.

ellie1과 ellie2는 다른 레퍼런스를 가지고 있기 때문이다.

5번에서 false가 출력된다.

마찬가지로 서로 다른 레퍼런스를 가지고 있기 때문이다.

6번에 true가 출력된다.

3번 명령문으로 같은 레퍼런스를 가지고 있기 때문이다.

 

 

 

0, boolean, '', null, undefined 데이터 타입 비교

// equality - puzzler
1. console.log(0 == false);
2. console.log(0 === false);
3. console.log('' == false);
4. console.log('' === false);
5. console.log(null == undefined);
6. console.log(null === undefined);

1번 값: true

false는 0으로 취급한다.

2번 값: false
=== 연산자는 데이터 타입까지 비교하므로 0은 number false는 boolean 타입이므로 false이다.

3번 값: true

비어있는 문자열을 false로 취급한다.

4번 값: false

비어있는 문자열과 false는 데이터 타입이 다르다.

5번 값: true

특이하게 numm과 undefined의 값은 같은 것으로 간주한다.

6번 값: false

둘의 데이터 타입은 다르다.

'Javascript' 카테고리의 다른 글

데이터 타입 비교  (0) 2021.08.06
Object.keys()  (0) 2021.07.19
구조 분해 할당  (0) 2021.07.13
백틱을 사용해 자바스크립트 함수로 인자를 보낼 때  (0) 2021.07.09
async와 await  (0) 2021.06.27
Promise 이해하기  (0) 2021.06.27