λ¨μ΄ μ²λΌ
-. truthly λ true κ°μ κ²
-. falsy λ false κ°μ κ²
νλ§λλ‘ boolean κ°μΈ true, false λ₯Ό κ°μ§μ§ μμμλ λΆκ΅¬νκ³ "λΉμ·ν" ν¨κ³Όλ₯Ό λ΄λ κ°μ΄λ€.
μ λλ‘ μκ°νλ©΄ λ κ² κ°λ€.
1. falsy κ°μ μ’ λ₯
- false / 0 / μμ / On / "" / null / undefined / NaN
* On : BigInt. boolean μΌλ‘ μ¬μ©λ κ²½μ° μ«μμ κ°μ κ·μΉμ λ°λ₯Έλ€.
* NaN : μ«μκ° μλ κ° None of Number
2. falsy κ° νμ
if (!λ³μ) {return;}
console.log(λ³μ)
μ΄λ° μμΌλ‘ μ¬μ©νλ©΄
μμ falsy κ°μ΄ μλ κ°λ§ console λ‘ μ°κ² λλ€.
3. μ¬μ© μμ
λ³΄ν΅ μ°λ¦¬κ° λκ° λ°μ΄ν°λ₯Ό λ°μμ¬ λ undefined κ°μ΄λ null κ°μ λ°μμ€κ² λλ κ²½μ°κ° μ’ μ’ μκΈ°λλ°
μ΄λ TypeError κ° λ°μνκ² λλ€.
TypeError : Cannot read property 'λ³μλͺ
' of null
νΉμ
TypeError : Cannot read property 'λ³μλͺ
' of undefined
μ΄λ
function falsytest(vari) {
if(vari === undefined || vari === null) {
console.log("λ³μ κ°μ΄ μ΄μν΄μ");
return;
}
console.log(vari.name);
}
const data = null
falsytest(data);
μ΄λ κ² κ²μ¬λ₯Ό ν΄μ£Όκ² λλ©΄ νμ μ€λ₯κ° μλκ² λλ€.
κ·Όλ° νΉμ λͺ¨λ₯Ό λλΉλ₯Ό μν΄ μμ μλ falsy μ ν΄λΉνλ κ²λ€μ λͺ¨λ κ²μ¬μμ λ£κ² λλ©΄ κ²μ¬μμ΄ μμ² λκ² κΈΈμ΄μ§κ² λ ν λ..
function falsytest(vari) {
if(!vari) {
console.log("λ³μ κ°μ΄ μ΄μν΄μ");
return;
}
console.log(vari.name);
}
const data = null
falsytest(data);
μ΄λ κ² λ³νν΄μ£Όλ©΄ μμ λͺ¨λ falsy κ°μ κ²ν ν΄μ€λ€.
4. λΆμ° μ€λͺ
console.log(!undefined);
console.log(!null);
console.log(!0);
console.log(!'');
console.log(!NaN);
μμ μ’ λ₯λ€μ΄ λͺ¨λ falsy ν κ°μ΄λΌμ false λ‘ κ°μ£Όνλ―λ‘
!false = true
μ¦ μμ λ°©λ²μΌλ‘ falsy ν κ°λ€μ νλ³ν΄μ€λ λκ°μ λ°©λ²μΈ κ²μ΄λ€.
μλλ©΄..
arr μ falsy κ° μ§μ΄ λ£μ΄λκ³ filter μ¬μ©ν΄μ νλ³ν΄λ΄λ λ°©λ²λ μμ