==
와 ===
의 차이
- 둘의 차이를 요약하자면,
묵시적으로 타입을 변환해서 비교하냐 (==) / 타입을 변환하지 않고 비교하냐 (===)
로 축약할 수 있다. ==
을 사용하지 않고===
만 사용하는 컨벤션 하나만 채용하더라도 수많은 버그의 가능성을 막을 수 있다.- 동작을 예측하기 힘든 연산자나 키워드를 회피하는 전략이다.
==
(non strict equality operator)
non strict equality operator
, 엄격하지 않은 동등성 연산자라고 불린다.- 타입 변환 동등성 비교 (type-converting equality comparison) 라고 말할 수 있다.
- 값 비교를 위해 타입 변환을 진행한 뒤에 값을 비교한다. 이 때문에,
===
과 다르게 아래의 결과가true
가 된다.1 == "1"
->true
0 == false
->true
undefined == null
->true
0 == false // true
0 === false // false
1 == "1" // true
1 === "1" // false
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
[]==[] or []===[] //false, refer different objects in memory
{}=={} or {}==={} //false, refer different objects in memory
===
(strict equality operator)
strict equality operator
, 엄격한 동등성 연산자라고 불린다.- 형변환을 진행하지 않는다. 타입이 다르면 다르다고 판단한다.
- 타입 변환을 진행하기 때문에,
==
과 다르게 아래의 결과가false
이다.1 === "1"
->false
0 === false
->false
undefined === null
->false
0 == false // true
0 === false // false
1 == "1" // true
1 === "1" // false
null == undefined // true
null === undefined // false
'0' == false // true
'0' === false // false
[]==[] or []===[] //false, refer different objects in memory
{}=={} or {}==={} //false, refer different objects in memory
반응형
'자바스크립트 > 인터뷰' 카테고리의 다른 글
First Class Function (일급 함수) 이란 무엇인가요 (0) | 2023.01.12 |
---|---|
자바스크립트의 대표적인 함수 정의 문법 두가지에 대해 알고 있나요? (0) | 2023.01.11 |
자바스크립트의 Object 와 Map 의 차이점에 대해서 얘기해보세요. (0) | 2023.01.04 |
자바스크립트의 splice() 함수에 대해 설명해보세요. (0) | 2022.12.28 |
var 의 문제점을 짚어보고 let, const 와 비교해보세요. (0) | 2022.12.17 |