본문 바로가기
바닐라코딩 사전학습/JS

Falsy/Truhty, ==/===

by 꼬마보노 2021. 12. 24.

JS는 값들에 falsy와 truhty가 있다. 

Falsy

0, -0, false, undefined, null, "", '', '', NaN

 

위의 Falsy값 이외의 모든 값들은 Truhty값이다. 

Falsy와 Truhty는 사용자가 정확한 Boolean 값이 아니더라도 JS에서 필요할 때 적절하게 바꿔준다. (조건문 등)

 

주의점

// true 
'' == 0; 
false == 0; 
null == undefined; 

// false
0 == undefined; 
'' == null; 
NaN == NaN;

Falsy와 Truhty는 만약 해당 타입이 코드에 적절한 타입이 아닐 경우 true 혹은 false로 바꾸어 줄 뿐이다. 값 자체가 바뀌는 것은 아니기 때문에 같음을 비교하려고 한다면 타입까지 비교해주는 === 연산자를 사용해야 한다.

// false
'' === 0;
false === 0;
null === undefined;

 

JS에서 ==와 ===는 다르다!

==는 양 쪽의 값이 같은지를 비교한다.(값만 같다면 true. 예를들어 0 == fales -> true)
===는 strict Equal Operator로써 값 뿐만 아니라 데이터 타입까지 모두 같은지를 비교한다.
null과 undefined는 둘 다 값이 없음을 뜻하지만 null == undefined; // true
null === undefined; // false의 데이터타입이 다르기 때문에 false로 나온다.

 

참고자료)

https://velog.io/@filoscoder/-%EC%99%80-%EC%9D%98-%EC%B0%A8%EC%9D%B4-oak1091tes

 

자바스크립트: '==' 와 '===' 는 다르다!

무엇이 다른가? 저는 자바 언어를 먼저 배운 입장에서 자바스크립트에 깊게 노출되지 않았기 때문에 충격을 받았다. 비록 자바스크립트의 어떤 기능, 사건 처리, 그리고 어떤 jQuery 속임수에 상

velog.io

 

'바닐라코딩 사전학습 > JS' 카테고리의 다른 글

appendChild()와 node참조  (0) 2021.12.24
Callback함수  (0) 2021.12.24
Function / Arrays / Object  (0) 2021.12.24
JS의 요소들  (0) 2021.12.24
input.onkeydown의 동작  (0) 2021.12.24