티스토리 뷰
JavaScript에서 ==
연산자와 ===
연산자의 주요 차이는 "동등"과 "일치"에 있음
- 동등 비교 (
==
) 연산자:- 좌변과 우변의 값이 동등한지 확인
- 타입 변환 수행, 서로 다른 타입의 값이 동일하다고 판단할 가능성 있음
console.log(0 == "0"); // true, 문자열 "0"이 숫자 0으로 변환
console.log(0 == false); // true, 불리언 false가 숫자 0으로 변환
console.log('false' == false); // false, 문자열 'false'는 NaN으로 변환, 불리언 false는 0으로 변환
console.log('' == 0); // true, 빈 문자열이 0으로 변환
- 일치 비교 (
===
) 연산자:- 좌변과 우변의 값이 일치하는지 확인
- 타입 변환을 미수행, 서로 다른 타입의 값은 일치하지 않음
console.log(0 === "0"); // false, 타입이 다름
console.log(0 === false); // false, 타입이 다름
console.log(0 === 0); // true, 타입과 값이 같음
console.log('' === 0); // false, 타입이 다름
위의 예제에서 볼 수 있듯이, ==
연산자는 타입 변환이 발생할 수 있어 예상치 않은 결과를 얻을 수 있음
따라서 코드의 의도를 더 명확하게 하고 버그를 줄이기 위해 ===
연산자를 사용하는 것이 좋음
'FE > JS' 카테고리의 다른 글
[React] 참조형과 useState (0) | 2023.11.27 |
---|---|
[vite.js] 루트 페이지 경로 바꾸기 (1) | 2023.11.27 |
[React] Cannot read properties of undefined (reading 'createRoot') (0) | 2023.11.26 |
[Node.js] Sorry, name can only contain URL-friendly characters. (0) | 2023.11.26 |
[자바스크립트] 얕은 복사(Shallow Copy)와 깊은 복사(Deep Copy) (0) | 2023.11.06 |