=
는 대입 연산자
var a = 1;
let b = 3;
const c = '5';
동등(coercive) 연산자 : 값을 비교해준다
var a = 3;
var b = '3';
let c = 3;
a == b // true
a == c // true
b == c // true
일치(strict)연산자
var a = 3;
var b = '3';
let c = 3;
a === b // false
a === c // true
b === c // false
같은 비교 연산자인데 위는 false가 많다.
false가 뜨는 이유는 == 와 === 의 형 변환 차이 때문이다.
==
는 양 옆의 값을 비교하기 전에 강제 형 변환(Type Coercion)을 수행한다. 강제 형 변환 과정을 통해 피연산자들을 공통 타입으로 만들고 그 안에 있는 값만을 비교하는 , 느슨한 비교
를 한다.
하지만 ===
의 경우 , 강제 형 변환 과정을 수행하지 않는 엄격한 비교(strict equality)
이기 때문에 false가 뜨는 것이다.