동등

자바스크립트에서 조심해야 할 것중에 하나가 =====의 차이이다. 자바스크립트는 탄력적으로 프로그래밍 오류를 막기위한 시도를했다. ==은 타입을 강제변환한다. 예를 들어 아래처럼 문자열과 숫자를 비교할 수 있을 것 같다면 스트링을 숫자로 변환하여 비교한다.

console.log(5 == "5"); // true   , TS Error
console.log(5 === "5"); // false , TS Error

그러나 이 결정은 자바스크립트를 항상 이상적으로 만들지 못했다. 예를들어 아래와 같은 예제일때, 첫번째 구문은 """0"이 서로 문자열로써 다른값이기 떄문에 명확히 거짓이다. 하지만 두번째 경우 0과 빈문자열 ("")는 false가 나와야 할것 같지만 ==으로 비교하면 true가 나온다. 두 구문을 모두 ===로 비교하면 false가 나온다.

console.log("" == "0"); // false
console.log(0 == ""); // true

console.log("" === "0"); // false
console.log(0 === ""); // false

string == numberstring === number는 둘다 타입스크립트에서 오류를 낸다. 그러니 이에 대한 걱정을 할 필요가 없다.

===== 처럼 !=!==의 경우도 비슷하다.

프로팁: null 체크를 제외하고는 항상 ===!==을 사용하자. 이에 대해서는 나중에 다뤄보려한다.

results matching ""

    No results matching ""