가끔 다른 사람들의 자바스크립트 소스를 분석하다가 보면..
if ( i === 0 )
혹은
if ( i == 0 )
이라는 소스를 본적이있다.
이건 뭐어지이...
분명 두개가 비교하는 것은 맞는데
=== 와 == .. 이건 차이가 있다.
영어로 간단하게 표현하자면
== : Equality
=== : Identity
주로 나오는 예제중에 하나는
i = 0 일 경우
i == '0' 일 경우는 TRUE
i === '0' 일 경우는 FALSE 가 된다는 것이다.
무슨 차이점인지 확인해보면
typeof(0)을 해서 타입을 확인해 보면 number 형태로 되어있고
typeof('0')을 하면 string 형태로 되어있다는 점을 확인할 수 있다.
== 는 값만으로 체크를 하는 것이고
=== 은 형태와 값을 모두 체크하여 비교하는 것이다.
관련 URL
JavaScript Comparison and Logical Operators
http://www.w3schools.com/JS/js_comparisons.asp
JavaScript === vs == : Does it matter which “equal” operator I use?
http://stackoverflow.com/questions/359494/javascript-vs-does-it-matter-which-equal-operator-i-use
Javascript: Equality versus Identity
http://blog.agilejedi.com/2008/09/javascript-equality-versus-identity.html
JavaScript tutorial: Comparison operators
http://www.c-point.com/javascript_tutorial/jsgrpComparison.htm
ps.
구글에서 ===으로 검색할 경우 검색이 잘 안되었는데..
그럴때 그냥 equals로 검색을 했더니 비슷한 부분으로 검색이 되는 것을 확인하였다.
특수문자를 검색할 경우 그냥 영문 단어로 검색을 하는 것이 좀 더 확실한 결과를 찾을 수 있다.
심지어..
는는과 는는는의 차이는 ? 이라고도 검색을 해봤다