본문 바로가기
Front-end/Javascript

== 와 === 차이 명확하게 알아보기

by JiGyeong 2023. 4. 27.

==는 Equal Operator이고, ===는 Strict Equal Operator이다.

==는 a == b 라고 할때, a와 b의 값이 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.(값만 같으면 true이다.)

 

===는 Strict, 즉 엄격한 Equal Operator로써, "엄격하게" 같음을 비교할 때 사용하는 연산자이다.

===는 a === b 라고 할때, 값과 값의 종류(Data Type)가 모두 같은지를 비교해서, 같으면 true, 다르면 false라고 한다.

 

 

숫자와 문자열을 비교할 때, 문자열을 숫자로 변환한다. JavaScript는 문자열의 숫자 리터럴을 Number형의 숫자로 변환하려고 한다. 처음에 그 문자열의 숫자 리터럴부터 수학적인 값을 이끌어 낸다. 그 다음 가장 가까운 Number형의 수로 반올림한다.

var a = "1";
var b = 1;

console.log(a==b); // true
console.log(a===b); // false

 

 

null과 undefined는 공통적으로 값이 없음을 뜻하지만, 값의 종류(Data Type)가 다르기 때문에,

=== 연산자를 사용할 때 결과가 false라고 나온다.

console.log(null == undefined); // true
console.log(null === undefined); // false

 

 

숫자 0과 문자열 “0”, ""

console.log(0 == "0"); // true
console.log(0 === "0"); // false
console.log(0 == ""); // true
console.log(0 === ""); // false

 

 

NaN은 Not a Number라는 뜻으로, 숫자가 아닌 것을 의미하지만 그 값 자체끼리는 같지 않다.

console.log(NaN == NaN); // false
console.log(NaN === NaN); // false

 

 

객체형

var a = [1,2,3];
var b = [1,2,3];
console.log(a == b); // false
console.log(a === b); // false

 

 

'Front-end > Javascript' 카테고리의 다른 글

Webpack  (0) 2021.10.26
Fabric, Javascript Canvas Drawing Library  (0) 2021.01.26
[Javascript] for in 은 속성 반환용  (0) 2019.08.14