== 연산자와, === 연산자의 차이는 무엇일까?
==연산자는 비교하는 대상을 type coercion한다.
예를 들어 아래의 코드를 보자
const age='23';
console.log(age == 23); // true
위 코드에서 출력되는 것은 true일까 false일까?
답은 true다.
자바스크립트가 behind the scene에서 23을 String으로 coercion(강제)하여 데이터 타입이 다른데도 true가 나온다.
이 같은 상황을 피하려고 나온 연산자가 ===연산자이다.
===연산자, 즉 strict equality 연산자는 type coercion이 안된다.
const age='23';
console.log(age === 23); // false
위와 같은 코드이고 연산자만 strict equality 연산자로 바뀌었다. 하지만 age와 23의 데이터 타입이 다르기 때문에 이번에는 false를 출력한다.