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
'바닐라코딩 사전학습 > 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 |