이번 포스팅에서는 자바스크립트에서 ' == ' 연산자와 ' === ' 연산자의 차이점을 정리하려고 한다.
💡 == 연산자
== 는 Equal Operator이고, == 는 a == b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.
== 연산자는 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환후 값을 비교한다.
타입을 비교하지 않고 값만 비교하기 때문에 ' === ' 연산자에 비해 느슨하다고 할 수 있다.
const a = 1;
const b = "1";
console.log(a == b); // true
하나가 숫자형이고 다른 하나가 문자열이면, 문자열을 숫자로 변환 후 값을 비교하여 true를 반환한다.
null == undefined // true
null 과 undefined는 엄연히 다르지만, == 연산자는 true를 반환한다.
💡 === 연산자
=== 는 Strict Euqal Operator 로써, a === b 라고 할때, 값과 값의 종류(Data Type)가 모두 같은지를 비교해서 같으면 true, 다르면 false를 반환한다.
=== 연산자는 타입을 변환하지 않으므로 ' == ' 연산자에 비해 비교하는 방식이 엄격하다.
즉, === 연산자는 타입이 다르면, false를 반환한다.
const a = 1;
const b = "1";
console.log(a === b); // false
데이터 타입이 숫자형과 문자열이기 때문에 false를 반환한다.
null === undefined; // false
null 과 undefined는 공통적으로 값이 없음을 뜻하지만, 값의 종류(Data Type)가 다르기 때문에 false를 반환한다.
NaN === NaN // false
NaN 값은 자기 자신을 포함하여 어떠한 값과도 일치하지 않다. === 연산자에 NaN 값이 존재하는 경우 항상 false이다.
'JavaScript' 카테고리의 다른 글
[JavaScript] - 고차함수 (0) | 2023.04.25 |
---|---|
[Javascript]콜백함수와 비동기 처리 - Promise (0) | 2023.03.21 |
[Javascript] 콜백함수와 비동기 처리 part1 (1) | 2023.03.21 |
[JavaScript] - 프로토타입과 클래스를 알아보자! (0) | 2023.03.15 |
[JavaScript] - 객체 지향 프로그래밍란? (0) | 2023.03.15 |