자바스크립트에서는 조건문에서 true/false를 직접 쓰지 않아도
값 자체가 "참 같은 값"인지 "거짓 같은 값"인지에 따라 분기할 수 있음
1. Falsy한 값
let f1 = undefined;
let f2 = null;
let f3 = 0;
let f4 = -0;
let f5 = NaN;
let f6 = "";
let f7 = 0n;
if (!f1) {
console.log("falsy"); // 실행됨
}
- `""`(빈 문자열)은 `falsy`
- `" "`(공백 하나 있는 문자열은 `truthy`
2. Truthy한 값
위 7가지를 제외한 나머지는 전부 `truthy`임
let t1 = "hello";
let t2 = 123;
let t3 = [];
let t4 = {};
let t5 = () => {};
if (t5) {
console.log("Truthy"); // 실행됨
}
3. 활용 예시
3.1 길게 쓴 버전
function printName(person) {
if (person === undefined || person === null) {
console.log("person의 값이 없음");
return;
}
console.log(person.name);
}
let person = null;
printName(person); // person의 값이 없음
3.2 `truthy` / `falsy` 사용하기
function printName2(person) {
if (!person) {
console.log("person의 값이 없음");
return;
}
console.log(person.name);
}
let person1 = { name: "도서" }; // let person; || person = null; 일 경우 -> person의 값이 없음 출력
printName2(person1); // "도서"
- `if (!person)`이라고 쓰면
-> `undefined`, `null`, `0`, `""` 이런 비어있는 값을 한 번에 거를 수 있어서 편함 - 이 패턴은 함수 초반에 잘못된 인자를 필터링할 때 자주 씀
'React > JavaScript 심화' 카테고리의 다른 글
| [JavaScript 심화] 배열 메서드 (요소 조작) (0) | 2025.11.10 |
|---|---|
| [JavaScript 심화] 순회 정리 (0) | 2025.11.10 |
| [JavaScript 심화] Spread & Rest (0) | 2025.11.03 |
| [JavaScript 심화] 구조 분해 할당 (0) | 2025.11.03 |
| [JavaScript 심화] 단락 평가 (0) | 2025.11.03 |