728x90
반응형
== 는 Equal Operator 이고, ===는 Strict Equal Operator이다
==는 a == b라고 할 때, a와 b의 값이 같은지를 비교해서 같으면 true 다르면 false라고 한다
===는 Strict, 즉 엄격한 Equal Operator로써 “엄격하게” 같음을 비교할 때 사용하는 연산자이다
===는 a === b라고 할 때, 값과 값의 종류가 모두 같은지를 비교해서 같으면 true 다르면 false라고 한다
쉽게 이야기하자면
<aside> 💡 '=='와 '===' 연산자의 주된 차이점은, 예를 들어, 숫자를 숫자 리터럴과 비교하면, '=='는 그것을 허용하지만, '===' 두 변수의 형식은 동일하지 않은 경우, 값뿐만 아니라 두 변수의 유형도 확인하므로, 허용하지 않는 것이다. 즉, '==='는 'false'으로 반환하고, '=='는 'true'로 반환한
</aside>
- '==' 연산자를 이용하여 서로 다른 유형의 두 변수의 [값] 비교
- '==='는 엄격한 비교를 하는 것으로 알려져 있다 ([값 & 자료형] -> true)
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"
2) '!=' 와 '!==' 비교연산자의 차이는?
예상대로, 유형 변환 비교와 엄격한 비교의 [값]과 [자료형]의 다름을 boolean 형식으로 반환한다
- 값이 다르지 않음으로 자료형 비교 안 함
2 != "2" // expected output: false
- 두 피연산자의 유형이 다른 것이 맞기 때문에 true
2 !== "2" // expected output: true
console.log(typeof 2); // expected output: "number"
console.log(typeof "2"); // expected output: "string"
3) 비교 연산자를 이용하여, 'NaN'을 비교하면?
- NaN (Not a Number)은, 어떤 것과도 같지 않다는 것을 기억해야 한다.
<aside> 💡 변수를 비교하거나 어떤 비교를 위해 항상 '===' 연산자를 사용 할 것을 권장한다.
가능한 '==' 연산자를 사용하지 않도록 하고, 대신 직접 자료형을 변환하여(casting) 보다 코드 가독성을 높이도록 한다.
</aside>
728x90
반응형
'Javascript' 카테고리의 다른 글
HTML i태그, b태그 (0) | 2023.08.14 |
---|---|
Node.js 설치 & npm 설치 & npx 설치 (0) | 2023.08.11 |
논리 연산자 (OR, AND, NOT) (0) | 2023.08.10 |
증감 연산자 (전위, 후위) (0) | 2023.08.10 |
대입 연산자, 복합 연산자 (0) | 2023.08.10 |