안녕하세요 :) 무택입니다🧔
오늘은 동등연산자(==)와 일치연산자(===)의 비교입니다.처음에 보면 헷갈리는 부분이 있기 때문에 정리해보려고 합니다.
#동등연산자(==)
- 두 피연산자의 값이 같으면 true반환
- 피연산자의 타입이 서로 다르면 강제로 타입을 같게 변환
[10 == '10'] // true
[true == 1] // true
[true == '1'] // true
[true =='true'] // false
[null == undefined] // true
- [10 == '10'] 하나가 숫자형이고 다른 하나가 문자열이면 문자열을 숫자로 변환 후 비교
- [true == 1] 피연산자 중 불리언 값이 있으면 불리언 값을 0&1로 변환 후 비교(false=0, true=1)
- [true == '1'] 불리언 값이 있기 때문에 true를 1로 변환 후 비교, 1=='1'는 하나는 숫자형이고 하나는 문자열이기 때문에 문자열을 숫자로 변환 후 비교 1==1
- [true =='true'] 불리언 값 true를 1로 변환, 문자열 true는 변환이 불가하므로 1=='true'는 false
- [null == undefined] null과 undefined은 엄연히 다르지만 둘 다 빈값이기 때문에 true반환
#일치연산자(===)
- 두 피연산자의 값이 같고, 타입까지 같으면 true반환
- 피연산자의 타입이 다르더라도 강제로 타입 변환 없이 비교
[10 === 10] // true
[10 === '10'] // false
[true === 1] // false
[null === undefined] // false
[NaN === NaN] // false
- [10 === 10] 둘 다 숫자형
- [10 === '10'] 숫자형 === 문자형
- [true === 1] 불리언 === 숫자형
- [null === undefined] null은 object타입, undefined는 undefined타입이기 때문에 false 출력
- [NaN === NaN] NaN 값은 어떠한 값과도 일치하지 않음.
'🧑💻개발 > JS' 카테고리의 다른 글
[JavaScript]웹페이지 접속이 오래걸릴때 필요한 기능(로딩화면 구현) (0) | 2023.07.17 |
---|---|
[JavaScript]스크롤 높이 개념 사진 한장으로 이해하기 (0) | 2023.07.05 |
요소에 클래스 추가하는 함수(js function) (0) | 2023.05.01 |
자바스크립트 classList 메소드 (0) | 2023.04.07 |
[JavaScript]팝업 레이어 적용 + 배경 블러효과, 배경 클릭 시 팝업 닫기 (1) | 2023.03.15 |