공부 및 일상기록

[Javascript] ==, === 의 차이점 본문

개발/Javascript

[Javascript] ==, === 의 차이점

낚시하고싶어요 2023. 1. 15. 19:49

자바스크립트는 타입 변환에 유연하게 동작한다.

== (equality operator)

== 연산자는 두 피연산자의 값의 타입이 다를 경우 자동으로 일부 피연산자의 타입을 변환 후 값을 비교한다.

타입을 비교하지 않으므로 느슨한 비교를 한다고 표현한다.

1 == 1 //true
1 == '1' //true
true == 1 //true
true == '1'1 //true
true == 'true' //false
null == undefined //true

*true=='true' 는 false이다. 불리언과 문자를 둘 다 변환 해서 1이 되어야만 true이기 때문에 이는 성립되지 않는다.

 

=== (strict equality operator)

=== 연산자는 타입을 변환하지 않으므로 ==연산자에 비해 엄격한 비교를 한다.

1 == 1 //true
1 == '1' //false
true == 1 //false
true == '1'1 //false
true == 'true' //false
null == undefined //false

때문에 타입과 값이 모두 일치하는 첫번째 경우를 제외하면 모두 false가 나오게 된다.