22.08.11 μ€μ€λ‘ 곡λΆν κ² λ° μμ μ€ λ¬λ²λ νλ©° 곡λΆν λ΄μ©λ€μ μ 리νμμ΅λλ€ π
νΌλλ°±μ μΈμ λ νμμ λλ€! π
ν¨μν νλ‘κ·Έλλ°μ κ°μ₯ κΈ°λ³Έ κ°λ μΌλ‘, μ½λ°± ν¨μ μμ κ°μΌλ‘ νκ°λ μ μκΈ° λλ¬Έμ 맀κ°λ³μμ λ΄μ μ μλ κ²μ.
ν¨μ 리ν°λ΄μ΄ νκ°λ λ ν¨μ κ°μ²΄κ° λ§λ€μ΄μ§κ³ , κ·Έ κ°μ²΄μ μ°Έμ‘° κ°μ΄ λ³μμ μ μ₯λλλ°, μ¬κΈ°μμ μ°Έμ‘°κ°μ μΈμλ‘μ 맀κ°λ³μμ μ λ¬νλ κ²μ΄ μ½λ°±ν¨μμ.
β μ¬μ¬μ©νκΈ° μν΄!
π‘ μ¬μ¬μ©μ΄ μ μ€μνκ°?
μμ°μ±μ ν₯μμν€κΈ° μν΄μ β μ μ§ λ³΄μμ μ©μ΄μ±
var
ν€μλλ₯Ό μ¬μ©νλ©΄, μ¬μ μΈμ΄ μλλΌ μ¬ν λΉμ΄ μΌμ΄λ¨λ³μ μ΄λ¦μ΄λΌκ³ λ νλ©°, κ°μ μλ³νκΈ° μν κ³ μ ν μ΄λ¦μ. κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μμ
λ³μ μ΄λ¦, ν¨μ μ΄λ¦, ν΄λμ€ λ± κ°μ κ°μ Έμ¬ μ μλ κ²λ€μ λ€ μλ³μμ.
URLλ μλ³μλΌκ³ ν μ μμ(νλμ μΉ μ¬μ΄νΈλ₯Ό νΉμ ν μ μκΈ° λλ¬Έ)
κ²½λ‘μ νμΌλͺ λ μλ³μλΌκ³ ν μ μμ(νμΌμ κ°μ§κ³ μ¬ μ μμ)
μλ³μλ μ¬μ€ νλ‘νΌν°μΈλ°, μ΄ λΆλΆμ κ΄ν λ΄μ©μ μ€μ½ν 곡λΆν λ λ°°μΈ μ μμ
π‘ μλ°μ€ν¬λ¦½νΈμ λ³μ μ΄κΈ°ν μ ν λΉλλ undefinedλ λͺ λ°μ΄νΈμΈκ°?
λͺ¨λ¦, μ νν ECMAScript μ¬μμμ λμμμ§ μκ³ λΈλΌμ°μ μμ§λ§λ€ λ€λ¦
π‘ λ©λͺ¨λ¦¬ μ μ ν¬κΈ°λ μ 1λ°μ΄νΈ(8λΉνΈ)μΈκ°?
μ μλ―Έν μ΅μ λ¨μκ° 1λ°μ΄νΈμ΄κΈ° λλ¬Έμ μ½μ
β λΆλ³ν κ°, κΈ°λ³Έ κ°μ΄λ©°, κ·Έ μ’ λ₯μλ μ«μ, λ¬Έμμ΄, λΆλ¦¬μΈ, null, undefined, BigInt(ν° μ μ), μ¬λ³Ό λ±μ΄ μμ.
π‘ μνμμμ μ€μμ νλ‘κ·Έλλ°μμμ μ€μλ λ€λ¦
νλ‘κ·Έλλ°μμμ μ€μλ float(λΆλ μμμ )
μλ°μ€ν¬λ¦½νΈμμμ Numberλ μ μμ²λΌ 보μ¬λ μ€μ
π€ μ μλ°μ€ν¬λ¦½νΈλ μ μκ° μλλΌ μ€μλ₯Ό Number νμ μΌλ‘ κ°μ§λκ°?
λ³μλ₯Ό μ μΈνκ³ μ²μμΌλ‘ κ°μ ν λΉνλ κ²μ.
λ³μμ undefinedλ₯Ό ν λΉνλ νμλ μ묡μ μΈ κ²μΈλ°, μΌλ°μ μΌλ‘ μ€λͺ ν λ ν λΉμ μλ°ν λ§νλ©΄ μ¬ν λΉμ΄μ§λ§(λ¨Όμ undefinedκ° ν λΉλμμΌλ―λ‘) μ΄κΈ°νλΌκ³ μ΄μΌκΈ°ν¨.
μλ μλ κ°μ μ§μ°κ³ μλ‘ μ°λ κ²λ³΄λ€, μλ‘ ν λΉν κ°μ λ©λͺ¨λ¦¬ μ£Όμλ§ λ°κΏμ£Όλ κ²μ΄ λ ν¨μ¨μ μ΄κΈ° λλ¬Έμ.
κ°μ²΄κ° μμ κ°μ²λΌ λμνλ©΄ κ°μ²΄ λ΄μ©μ λ°κΎΈλ μκ° μλ‘μ΄ κ°μ²΄κ° μμ±λμ΄μΌ ν¨, κ·Έ κ°μ²΄μ μμ± λΉμ©μ΄ μμ κ° μμ± λΉμ©λ³΄λ€ ν¨μ¬ νΌ
κ°μ²΄μ ν¬κΈ°κ° μμ κ°μ ν¬κΈ°λ³΄λ€ ν¨μ¬ νΌ, μ§κΈμ²λΌ μ»΄ν¨ν° μ¬μμ΄ λ°μ ν κ²½μ°μλ 무μλ―Ένμ§λ§ μμ μ λ©λͺ¨λ¦¬ μμ²΄κ° κ·νλ μμ μλ κ·Έ λΉμ©μ κ΅μ₯ν μ€μνκ² μκ°νμ
μμ μλ slice
μ¬μ©νμ¬ λ³΅μ¬νμ
β slice
μ¬μ©νμ¬ λ΄λΆ κ°κ² 볡μ¬νλλΌλ μ°Έμ‘°νλ λ©λͺ¨λ¦¬ μ£Όμλ λ€λ₯΄κΈ° λλ¬Έμ
===
μ°μ°μ μ¬μ©νμ¬ λΉκ΅ν΄λ³΄λ©΄ falseκ° λμ¨λ€. μλνλ©΄, μ°Έμ‘° κ°μ λΉκ΅νκΈ° λλ¬Έμ.
μ§κΈμ μ€νλ λ μ°μ°μ μ¬μ©
<λλΆλΆμ copy
λ°©λ²μ΄ μμ 볡μ¬λ₯Ό νλ μ΄μ >
κΉμ 볡μ¬λ λͺ depthκ° μλμ§ λͺ¨λ₯΄κΈ° λλ¬Έμ λ©λͺ¨λ¦¬λ₯Ό κ΅μ₯ν λλΉν¨
(1) stringify
κ°μ²΄λ₯Ό copy ν λ λ©μλ 볡μ¬λ λΆκ°λ₯νλ€λ λ¬Έμ μ μ΄ μμ
π‘ ν¨μμ 볡μ¬λ μ΄λ»κ² μ΄λ£¨μ΄μ§λκ°?
κ°μ²΄μ μ¨κ²¨μ§ νλ‘νΌν°λ€λ λ€ λ³΅μ¬ν΄μΌ νλλ°, κ·Έκ²κΉμ§ 볡μ¬ν μ μλ λ°©λ²μ΄ μμ
β κ²°κ΅μ ν¨μμ κΉμ 볡μ¬κ° κ±°μ λΆκ°λ₯μ κ°κΉμ
(2) λΌμ΄λΈλ¬λ¦¬ μ¬μ©
κΆμ₯λλ λ°©λ²μ΄λ©°, κ°μ²΄λ₯Ό 볡μ¬ν λ νλ‘νΌν° ν€λ₯Ό κ°μ Έμμ κ°μ²΄μΈμ§ μλμ§ νμ ν ν, κ°μ²΄λ©΄ κΉμ λ³΅μ¬ ν λ² λ νκ³ , μμ κ°μ΄λ©΄ ν λΉλ§ νλ©΄ λ¨
π‘ κΉμ 볡μ¬μ κ΄λ ¨λ ν¨μλ μ μΆκ°λμ§ μλκ°?λ¨λ°ν κ°λ₯μ±μ΄ μκΈ° λλ¬Έμ.
μμ² μ»€λ€λ κ°μ²΄λ₯Ό κ³μ 볡μ¬νλ κ²½μ° λ©λͺ¨λ¦¬κ° κ°λ μ°¨λ μ¬κ°ν λ¬Έμ κ° μκΈΈ μ μμ
β κΉμ 볡μ¬λ λ€λ₯Έ μΈμ΄μμλ λΌμ΄λΈλ¬λ¦¬λ‘ μ 곡λ¨
ν¨μνμμ μΈλΆ μνλ₯Ό μ°Έμ‘°, λ³κ²½νμ§ μκΈ° μν΄μ μλ‘μ΄ λ°°μ΄, κ°μ²΄λ₯Ό λ°νν΄μΌ ν¨
μ€νλ λ λ¬Έλ² μ¬μ©νμ¬ μμ 볡μ¬λ‘ μλ‘μ΄ κ°μ²΄ λ°ν
κ²°κ΅ μ΄ λͺ¨λ κ²μ μ€μλ₯Ό λ°©μ§νκΈ° μν κ²λ€μ
μ΄ λ κ°λ λ¬Έλ§₯μ λ°λΌ λ€λ₯΄κ² νκ°νλλ°,
μ€κ΄νΈ { }
μμ κ°μΌλ‘ νκ°λ μ μλμ§ μλμ§ λ¬Έλ§₯μ λ°λΌ λ€λ₯΄κ² νκ°ν¨
무μμ μ¨λ μκ΄μ μμ§λ§, μ½λ μ 체μ μΌκ΄μ±μ κ³ λ €νμ¬ λ μ€ νλλ§ κ³¨λΌμ μ¬μ©ν κ²
ν¨μμ λͺ©μ μ λ§κ² μ¬μ©νλ κ²μ΄ μ€μν¨
β μμ±μ ν¨μλ μλ String κ°μ²΄λ₯Ό μμ±νλ κ²μ΄λ―λ‘ λ¬Έμμ΄λ‘ νμ λ³νν λ μ¬μ©νλ κ²μ ν¨μμ λͺ©μ μ λ§μ§ μμ
λ무 볡μ‘νκΈ° λλ¬Έμ μ¬μ©νμ§ μλ κ²μ΄ λ°λμ§ν¨
μμ μλ μ μ λ³μλ₯Ό μ€μΌμν€μ§ μκΈ° μν΄ μ¬μ©νλλ°, μμ¦μλ λͺ¨λμ΄ λ±μ₯ν΄μ κ΅³μ΄ νμ μμ
ν λ²λ§ μ¬μ©νκ³ λ²λ¦¬κ³ μΆμ λ μ¬μ©νλ©°, μμ¦μλ ν΄λ‘μ λ₯Ό λ§λ€κΈ° μν΄μ μ¬μ©ν¨.