자바스크립트에서 =(등호)는 서로 같다는 뜻이 아니다.
등호 왼쪽에 있는 상수나 변수에 오른쪽에 있는 데이터를 할당한다는 뜻이다.
let a;
a= 1
a라는 변수를 선언하고 1을 할당했다.
같은 값을 가졌는지 아닌지 판단하려면 어떻게 해야 하지?
등호를 연달아 2번==
사용하면 같은 값을 가졌다면 true, 아니라면 false를 반환한다.
!=
는 반대로 다른 값을 가지면 true 같은 값을 가지만 false 를 반환한다.
let a = 1;
let b = 1;
a == b; // true;
그런데 문제가 있다. type이 다를 경우 비교 가능한 형태로 알아서 변환시킨다음 비교를 한다.
let a =1;
let b ="1";
a == b; // true;
분명히 type이 다른데 true를 반환하고
null == undefined; // true
null과 undefined 모두 falsy이긴 하지만 차이점이 분명히 있는데 서로 같다고 한다.
type도 같은 값을 가졌는지 아닌지 판단하려면 어떻게 해야 하지?
그럴땐 등호를 한 번 씩 더 사용하자.
위에서 엄연히 차이점이 있지만 true를 반환하던 두 케이스에서 제대로 false를 반환한다.
let a =1;
let b ="1";
a =-= b; // false;
null == undefined; // false