=
==
===
똑같이 생겼는데 세 가지 다 이름도 다르고 쓰임새도 다르다
오늘은 이걸 알아볼거임
"=" 얘는 대입연산자라고 함
말 그대로 값을 때려 박을 때 씀
var a = 3;
let b = 3;
const c = '3';
"=="는 동등(coercive) 연산자라고 함
두 값이 같은 지 비교할 때 쓴다.
var a = 3;
let b = 3;
const c = '3';
a == b //true
a == c //true
b == c //true
"==="는 일치(strict) 연산자라고 함
두 값이 같은 지 비교할 때 쓰는 점은
"=="와 똑같지만, 값 뿐만 아니라, 형식까지 같은 지 여부를 반환한다.
var a = 3;
let b = 3;
const c = '3';
a == b //true
a == c //true
b == c //false
몇 가지 예시를 통해 알아보자
0 == false //true
0 === false //false
console.log(typeof 0) //number
console.log(typeof false) //boolean
"=="로 비교하면 true를,
"==="fh 비교하면 false를 반환하는걸 볼 수 있다.
그니까, typeof로 찍어봐서 나온 결과까지 동일해야 true를 반환해줌
그럼 비슷한 듯 다른 이 두 친구를 비교해보자
undefined == null //true
null === undefined //false
console.log(typeof undefined); // undefined
console.log(typeof null); //object
역시나 "=="에서는 true,
"==="에서는 피연산자의 type이 다르기 때문에 false를 반환함
가능한 "=="연산자를 사용하기보다
직접 자료형을 변환하여 "==="연산자를 사용하면
코드 가독성도 좋아질듯