가끔 코딩을 하다가 비교 연산자가 필요할 때면, ==를 사용한다.
3 + '23' = '323' // 숫자에 문자열을 더하면 문자열이 된다.
3 > '4' // false
이렇듯 자바스크립트는 암묵적으로 타입이 자동으로 변환시켜 비교하거나 합쳐준다.
본인은 한 번 더 치기 싫은 것도 있고, 혹시나 type이 달라 비교가 내가 생각한대로 되지 않는 것도 싫기 때문도 있다.
하지만, 요즘엔 프론트엔드에서 TypeScript가 유행하는 데에는 이유가 있다고 생각하기 때문에 염격한 비교 연산자인 ===를 의식적으로 사용하려고 한다.
false == 'false' // false가 나온다.
자동으로 변환시켜 true가 나올 줄 알았지만, boolean 타입은 자동 변환이 되지 않아 false가 나온다.
이것으로 우리는 느슨한 비교 연산자인 ==가 예측하기 어렵다는 걸 알 수 있다.
글이나 말투에서도 어미가 다르면 말 뜻이 달라지듯이 우리 개발자도 세세한 것에도 신경을 많이 쓰면서 코딩을 해야 한다는 걸 느꼈다.
저도 이전에는 느슨한 비교 연산자를 사용했었는데 이번에 공부하면서 엄격한 비교 연산자를 사용하려고 하고 있습니다😄 세세한 것 하나하나까지 신경써서 장애 코드를 만들지 않도록 노력하는 것이 중요한 것 같습니다!