πΈ09μ₯. νμ λ³νκ³Ό λ¨μΆ νκ°
β
9.1 νμ
λ³νμ΄λ?
κΈ°μ‘΄ μμ κ°(primitive value)μ μ§μ λ³κ²½νλ κ²μ μλκ³ κΈ°μ‘΄ μμ κ°μ μ΄μ©ν΄ λ€λ₯Έ νμ
μ μλ‘μ΄ μμκ°μ μμ±νλ κ²μ΄λ€. (-> immutable value μ΄κΈ° λλ¬Έ)λͺ μμ νμ λ³ν/νμ μΊμ€ν: κ°λ°μκ° μλμ μΌλ‘ κ°μ νμ μ λ³ννλ κ²μ묡μ νμ λ³ν/νμ κ°μ λ³ν: μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ νμ μ΄ λ³νλλ κ²
β
9.2 μ묡μ νμ
λ³ν
μλ°μ€ν¬λ¦½νΈ μμ§μ ννμμ νκ°ν λ κ°λ°μμ μλμλ μκ΄μμ΄ μ½λμ λ¬Έλ§₯μ κ³ λ €ν΄ μ묡μ μΌλ‘ λ°μ΄ν° νμ
μ κ°μ λ³νν λκ° μλ€.λ¬Έμμ΄(string), μ«μ(number), λΆλ¦¬μΈ(boolean)κ³Ό κ°μμμ νμ (primitive type)μ€ νλλ‘ νμ μ μλ λ³νλλ€.
λ¬Έμμ΄ νμ
μΌλ‘ λ³ν
+μ°μ°μλ νΌμ°μ°μ μ€ νλ μ΄μμ΄ λ¬Έμμ΄μ΄λ©΄, λ¬Έμμ΄ μ°κ²° μ°μ°μλ‘ λμνλ€.1 + '2' // -> "12"
// μ«μ νμ
, λΆλ¦¬μΈ νμ
, null νμ
, undefined νμ
λ°λ‘ μ μ© O
0 + ""; // "0"
-0 + ""; // "0"
NaN + ""; // "NaN"
Infinity + ""; // "Infinity"
null + ""; // "null"μ«μ νμ
μΌλ‘ λ³ν
μ°μ μ°μ°μ(-, *, /)μ νΌμ°μ°μλ μ½λ λ¬Έλ§₯μ λͺ¨λ μ«μνμ μ΄μ΄μΌ νλ€.λ³νν μ μλ κ²½μ°, NaNμ λ°ννλ€.
+λ¨ν μ°μ°μλ νΌμ°μ°μκ° μ«μ νμ μ κ°μ΄ μλλ©΄ μ«μ νμ μ κ°μΌλ‘ μ묡μ νμ λ³νμ μννλ€.
λΉ λ¬Έμμ΄(''), λΉ λ°°μ΄([]), null, false β
0true β
1(βμ£Όμβ)κ°μ²΄, λΉ λ°°μ΄μ΄ μλ λ°°μ΄(= κ°μ΄ μλ λ°°μ΄), undefined β
NaN
λΆλ¦¬μΈ νμ
μΌλ‘ λ³ν
β μλ°μ€ν¬λ¦½νΈ μμ§μ΄ Falsy κ°μΌλ‘ νλ¨νλ κ°
false
undefined
null
0, -0
NaN
''(λΉ λ¬Έμμ΄)
β
9.3 λͺ
μμ νμ
λ³ν
λ¬Έμμ΄ νμ
μΌλ‘ λ³ν
String μμ±μ ν¨μλ₯Ό new ν€μλ μμ΄ νΈμΆνλ λ°©λ²
Object.prototype.toString λ©μλλ₯Ό μ¬μ©νλ λ°©λ²
λ¬Έμμ΄ μ°κ²° μ°μ°μλ₯Ό μ΄μ©νλ λ°©λ² β μ묡μ νμ λ³ν
μ«μ νμ
μΌλ‘ λ³ν
Number μμ±μ ν¨μλ₯Ό new ν€μλ μμ΄ νΈμΆνλ λ°©λ²
parseInt, parseFloat ν¨μλ₯Ό μ¬μ©νλ λ°©λ²(λ¬Έμμ΄λ§ μ«μ νμ μΌλ‘ λ³ν κ°λ₯)
μ°μ μ°μ°μ(+λ¨ν, *μ°μ )λ₯Ό μ¬μ©νλ λ°©λ² β μ묡μ νμ λ³ν
λΆλ¦¬μΈ νμ
μΌλ‘ λ³ν
Boolean μμ±μ ν¨μλ₯Ό new ν€μλ μμ΄ νΈμΆνλ λ°©λ²
!(λΆμ λ Όλ¦¬ μ°μ°μλ₯Ό λ λ² μ¬μ©νλ λ°©λ²)
β
9.4 λ¨μΆ νκ°(short-circuit evaluation)
λ
Όλ¦¬ μ°μ°μλ₯Ό μ¬μ©ν λ¨μΆ νκ°
λ Όλ¦¬κ³±(&&)μ’ν β μ°νμΌλ‘ νκ°κ° μ§νλκ³
λ κ°μ νΌμ°μ°μκ° λͺ¨λ trueλ‘ νκ°λ λ, trueλ₯Ό λ°νν¨
λ°λΌμ λ Όλ¦¬ μ°μ°μ κ²°κ³Όλ₯Ό κ²°μ νλ κ²μ
λ λ²μ§Έ νΌμ°μ°μ
λ Όλ¦¬ν©(||)μ’ν β μ°νμΌλ‘ νκ°κ° μ§νλκ³
λ κ°μ νΌμ°μ°μ.μ€ νλλ§ trueλ‘ νκ°λμ΄λ, trueλ₯Ό λ°νν¨
λ°λΌμ λ Όλ¦¬ μ°μ°μ κ²°κ³Όλ₯Ό κ²°μ νλ κ²μ
첫 λ²μ§Έ νΌμ°μ°μ
π μ₯μ 1. ifλ¬Έμ λ체ν μ μλ€.
π μ₯μ 2. κ°μ²΄λ₯Ό κ°λ¦¬ν€κΈ°λ₯Ό κΈ°λνλ λ³μκ° null λλ undefined κ° μλμ§ νμΈνκ³ νλ‘νΌν°λ₯Ό μ°Έμ‘°ν λ μ μ©νλ€.
κ°μ²΄ :
{key:value}λ‘ κ΅¬μ±λ νλ‘νΌν°μ μ§ν©λ§μ½, κ°μ²΄λ₯Ό κ°λ¦¬ν€κΈ°λ₯Ό κΈ°λνλ λ³μμ κ°μ΄ κ°μ²΄κ° μλλΌ null/undefinedμΈ κ²½μ°, κ°μ²΄ μ°Έμ‘°μ TypeError λ°μ(νλ‘κ·Έλ¨ κ°μ μ’ λ£)
π μ₯μ 2. ν¨μ λ§€κ°λ³μμ κΈ°λ³Έκ°μ μ€μ ν λ μ μ©νλ€.
ν¨μλ₯Ό νΈμΆν λ μΈμλ₯Ό μ λ¬νμ§ μμΌλ©΄ λ§€κ°λ³μμλ undefinedκ° ν λΉλλ€.
μ΅μ
λ 체μ΄λ μ°μ°μ
μ’νμ νΌμ°μ°μκ°
null λλ undefinedμΌ κ²½μ°,undefined λ°νκ·Έλ μ§ μμ κ²½μ°,
μ°νμ νλ‘νΌν°λ₯Ό μ°Έμ‘°
λ Όλ¦¬κ³±(&&) μ°μ°μ vs μ΅μ λ 체μ΄λ μ°μ°μ
λ Όλ¦¬κ³± μ°μ°μ : μ’ν νΌμ°μ°μκ° Falsyκ°μ΄λ©΄, μ’ν νΌμ°μ°μλ₯Ό κ·Έλλ‘ λ°ννλ€. (λ¨, 0 λλ ''μ κ°μ²΄λ‘ νκ°λ λλ μλ€.)
μ΅μ λ 체μ΄λ : μ’ν νΌμ°μ°μκ° Falsyκ°μ΄λΌλ null λλ undefined λ§ μλλ©΄, μ°νμ νλ‘νΌν°λ₯Ό μ°Έμ‘°νλ€.
null λ³ν© μ°μ°μ
μ’νμ νΌμ°μ°μκ°
null λλ undefinedμΌ κ²½μ°,μ°νμ νΌμ°μ°μλ₯Ό λ°νκ·Έλ μ§ μμ κ²½μ°,
μ’νμ νλ‘νΌν°λ₯Ό μ°Έμ‘°
λ³μμ κΈ°λ³Έκ°μ μ€μ ν λ μ μ©νλ€.
κΈ°μ‘΄ :
λ Όλ¦¬ν©(||)μ μ¬μ©ν λ¨μΆ νκ°λ₯Ό ν΅ν΄ λ³μμ κΈ°λ³Έκ°μ μ€μ νλ€.μ’νμ νΌμ°μ°μκ° falseλ‘ νκ°λλ Falsyκ°μ΄λ©΄ μ°νμ νΌμ°μ°μλ₯Ό λ°ννλ€.
λ¨, 0 μ΄λ ''μ κΈ°λ³Έκ°μΌλ‘μ μ νΈνλ€λ©΄ μκΈ°μΉ μμ λμμ΄ λ°μ
null λ³ν©μ°μ°μ
??λ μ’νμ νΌμ°μ°μκ° Falsyκ°μ΄λΌλ nullλλ undefinedκ° μλλ©΄ μ’νμ νΌμ°μ°μλ₯Ό κ·Έλλ‘ λ°ννλ€.
π©π» λ΄ κ°λ° κ²½ν νκ³
νλ‘μ νΈμμ, λΉ λ¬Έμμ΄("")λ νΉμ κ°μΌλ‘ μ μ§νκ³ μΆμμ§λ§, || μ°μ°μλ₯Ό μ¬μ©ν΄ λΉ λ¬Έμμ΄μ΄ κΈ°λ³Έκ°μΌλ‘ λ체λλ λ¬Έμ κ° μκΈ΄ μ μ΄ μμλ€.
μλ₯Ό λ€λ©΄, μλ μ½λμμ dataκ° "" μ΄μ΄λ κ·Έλλ‘ resμ ν λΉνκ³ μΆμμ§λ§, "default"κ° ν λΉλλ λ¬Έμ ..
μ΄λ null λ³ν© μ°μ°μ(??)λ₯Ό μΌλ€λ©΄ λ λμκ² λ€λ μκ°μ΄ λ€μλ€. λ€μμλ ?? μ¨λ΄μΌμ§!
Last updated