https://developer.mozilla.org/ko/docs/Glossary/Falsy
나는 Java로 프로그래밍을 시작했는데 보통 if문에서 참/거짓 연산에 대한 비교 연산을 하면 예시는 보통 다음과 같이 작성되어 있었다.
boolean flag = true;
if (flag == true) {
System.out.println("참입니다.");
} else {
System.out.println("거짓입니다.");
}
== 연산으로 참, 거짓을 비교하는 것인데, 이 구문은 다음과 같이도 쓸 수 있다.
boolean flag = true;
if (flag) {
System.out.println("참입니다.");
} else {
System.out.println("거짓입니다.");
}
flag라는 변수 자체가 true/false 값을 가지고 있고, if문은 true, false에 대한 비교 연산을 하므로 이렇게 줄여서 작성이 가능하다.
JavaScript 문법이 원래 Java와 비슷하기 때문에, 보통은 Java에서 사용하던 방식의 비교문을 사용해서 if문을 작성했는데, 어느 시점부터 JavaScript if문 안에 Boolean 타입이 아닌 값(또는, 아닐 것으로 예측되는 값)이 들어가 있는 것을 보았다. 대충 예시를 보면 다음과 같다.
var flag = 0;
if (flag)
{
console.log("참입니다.");
}else{
console.log("거짓입니다.");
}
//"거짓입니다."
내가 배운 개념으로는 0이라는 값을 true/false로 이해한다는 게 이해가 되지 않아서 대충 1은 true, 0은 false인 것으로 추정해서 작업했었다.
그러던 중에 Falsy와 Truthy라는 개념을 알게되었다.
대충 한글로 거짓 같은 값, 참 같은 값이라고 번역하는데, 이는 여러 참/거짓 값 판단이 필요한 부분에서 참이나 거짓으로 인식하는 경우에 대한 설명이었다.
일단 여기는 false로 판단하는 경우만 따로 정리해 놓았다.
false | 키워드 false |
0 | 숫자 zero |
-0 | 음수 zero |
0n | BigInt. 불리언으로 사용될 경우, 숫자와 같은 규칙을 따름. 0n은 거짓 같은 값. |
"" | 빈 string |
null | null - 아무런 값도 없음 |
undefined | undefined - 원시값 |
NaN (en-US) | NaN - 숫자가 아님 |
거짓 같은 값 중에서 큰 도움이 되었던 부분은 null, undefined, ""에 대해서 false로 인식한다는 점이었다.
api로 통신한 값이 넘어올때 value가 String 타입이거나, null이거나, 넘어오지 않으면 보통 "", null, undefined 인 경우가 대부분인데, 이럴때 if문에 변수명을 넣는 것만으로 충분히 참/거짓 판단이 가능하다.
'Javascript' 카테고리의 다른 글
Array.prototype.concat() (0) | 2021.11.11 |
---|---|
JavaScript에서 true로 인식되는 값; 참 같은 값; Truthy (0) | 2021.11.11 |
Array.prototype.sort() (0) | 2021.11.10 |
Array.prototype.filter() (0) | 2021.11.09 |
Array.prototype.map() (0) | 2021.11.03 |