반응형
* 결론: '=='는 '값'만 비교하는 반면, '==='는 '값' 및 '자료형'을 동시에 비교하는 더 strict한 연산자이다.
구글링 중에 설명이 정말 잘 되어 있는 블로그가 있어서 내용을 그대로 가져왔다. (fileoscoder님 감사합니다!)
출처: https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes
- ☝ '==' 연산자를 이용하여 서로 다른 유형의 두 변수의 [값] 비교
- ✌ '==='는 엄격한 비교를 하는 것으로 알려져 있다 ([값 & 자료형] -> true).
🔍 간단 비교
✔ 0값은 false와 동일하므로 -> true 출력
0 == false // true
✔ 두 피연산자의 유형이 다르기 때문에 ->false
0 === false // expected output: false
console.log(typeof 0); // expected output: "number"
console.log(typeof false); // expected output: "boolean"
🔍 숫자와 문자열 비교
✔ 자동 유형변화 비교
2 == "2" // expected output: true
✔ 두 피연산자의 유형이 다르기 때문에 ->false
2 === "2" // expected output: false
console.log(typeof 2); // expected output: "number"
console.log(typeof "2"); // expected output: "string"
🤔 #궁굼한 케이스들
🔍 1) null 와 undefined 비교했을 때 어떤 결과가 나올 것인가?
✔ 자동 유형변화 비교
null == undefined // expected output: true
✔ 두 피연산자의 유형이 다르기 때문에 ->false
null == undefined // expected output: false console.log(typeof null); // expected output: "object" console.log(typeof undefined); // expected output: "undefined"
🕺 변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장한다.
💃 가능한 '==' 연산자를 사용하지 않도록 하고, 대신 직접 자료형을 변환하여(casting) 보다 코드 가독성을 높이도록 한다.
반응형
'직장생활 > Javascript, Nodejs' 카테고리의 다른 글
Airflow에서 특정 DAG의 실행 시간을 현재시간과 비교하여 slack으로 메시지를 보내주는 코드. (0) | 2022.06.19 |
---|---|
Axios 기본 및 사용법, 옵션 (0) | 2022.05.31 |
[Nodejs] mac(ios) Nodejs, nvm 설치 (0) | 2022.05.28 |
[javascript] JSON.parse, JSON.stringify, toString() 차이 (0) | 2022.05.23 |
[javascript] [AWS] S3에서 이벤트가 발생할 때마다 lambda가 실행되게 하는 nodejs 코드 해석 (0) | 2022.05.22 |