’==’ : Equality
피연산자가 다른 타입이면 강제 형변환을 통해 비교. (값 비교)
예시
1 2 3 4 5 6 7 8 9
0 == '' // true 0 == '0' // true 1 == true // true false == '0' // true null == undefined // true false == null // false false == undefined // false 2 == true // false 'true' == true // false
’===’ : Identity
형변환을 하지 않고 엄격한 비교 (값 & 자료형)
가능한 이 것을 사용할 것을 권장(자료형을 직접 변환해 비교함으로써 가독성 높이도록)
예시
1 2 3 4 5 6
0 == '' // false 0 == false // false 1 == true // false 'abc' == new String('abc') // false NaN == NaN // false. (NaN은 어떤 것과도 같지 않음) null == undefined // false. (typeof null == "object" /typeof undefined == "undefined")
Reference)
https://hyunseob.github.io/2015/07/30/diffrence-between-equality-and-identity-in-javascript/
http://guswnsxodlf.github.io/javascript-equal-operator
https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes