아톰 플러그인 중에서 linter 플러그인을 이용하다가 알게된 사실 중에서 하나다.

해당 플러그인을 적용하고 스크립트가 있는 파일을 코딩하려고 열어보니 여러가지 경고가 엄청나게 뜨는데. 그 중 한 유형이다.



자바 스크립트에서는 등식과 부등식 등을 사용하는데 있어서 다소 독특하다.
서적을 구매하여서 따로 공부한 것이 아니라서 이런 세밀하고 독특한 것에 대해서는 제대로 모르게 된 것 같다.
나는 당연한 듯이 ==와 !=를 사용하고 있었는데. 사실은 다른 방법이 있다는 것이다!


바로 ===와 !==인데. 다소 의미가 다르다.

자바스크립트에서는 변수의 타입이 유동적이다. 딱 정해지는 것이 아니라 그냥 값을 넣으면 이리저리 바뀌기 때문에 확정하기가 다소 그렇다.
이 변수에 문자열이 들어있는지. bool값이 들어있는지 정수가 들어있는지. 일단 까보거나 어떻게 해서 알아내야한다. 선언 할 때. 지정할 수도 한번 지정한 것이 끝가지 가지도 않는다.


그래서 자바스크립트는 다음과 같은 형태가 나온 것 같다.

===와 !==는 타입도 비교하는 엄격비교이다.


예를 들어보자 ture=='true' 라고 한다면?

작은 따옴표에 대한 문법은 무시하고 일단 식만 보자. C같은 언어에서 해당 조건식은 무조건 False. 거짓이다.
하지만, 자바스크립트에서는 이를 True! 라고 말해준다.

이는 타입은 됬고 얼추 true니까. 그냥 true다...


반면 ===를 쓰게되면 타입도 비교한다. 즉 타입이 다르면 그냥 false

true==='true'가 False를 반환하게 되는 것이다. 물론 true===true는 당연히 true를 반환한다.



마찬가지의 맥락으로 !==도 같은 맥락으로 사용하면 될 듯 하다.

댓글 작성