자바스크립트에서 동등함은 주로 ===
를 쓴다.
그런데 ==
도 있다고 한다.
그럼 ==
와 ===
의 차이는 무엇일까?
우선 ==
와 ===
를 무엇이라고 칭하는지 알아보자.
좌항과 우항 피연산자의 값으로 동등함을 비교한다.(느슨한 비교)
-> 타입이 다르더라도 값이 같으면 true 리턴
0과 false의 값이 동일하므로 true 리턴
0 == false // true
타입이 어쨌든 상관없이 값이 동일하므로 true 리턴
10 == "10" // true
좌항과 우항 피연산자의 값과 타입 모두를 고려하여 동등함을 비교한다.(엄격한 비교)
-> 타입과 값 둘다 같아야 true 리턴
0과 false의 타입이 다르므로 false 리턴
0 === false // false
console.log(typeof 0); // number
console.log(typeof false); // boolean
값은 같지만 두 연산자의 타입이 달라서 false 리턴
10 === "10" // false
console.log(typeof 10); // number
console.log(typeof "10"); // string
걍 일치 비교 연산자를 쓰는 습관을 들이자!