μμκ° | κ°μ²΄ |
- λ³κ²½ λΆκ°λ₯ν κ° - λ³μμ μ€μ κ° μ μ₯ - λ€λ₯Έ λ³μμ ν λΉ : μμ κ°μ΄ 볡μ¬λμ΄ μ λ¬ (κ°μ μν μ λ¬) |
- λ³κ²½ κ°λ₯ν κ° - λ³μμ μ°Έμ‘° κ° μ μ₯ - λ€λ₯Έ λ³μμ ν λΉ : μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ μ λ¬ (μ°Έμ‘°μ μν μ λ¬) |
π₯ͺ 11. 1 μμ κ°
11.1.1 λ³κ²½ λΆκ°λ₯ν κ°
μμ νμ μ κ°. λ³κ²½ λΆκ°λ₯ν κ°.
νλ² μμ±λλ©΄ λ³κ²½ν μ μμ.
π λ³κ²½μ ν μ μλ€λ 건 λ³μκ° μλλΌ κ°μ λν κ².
λ³μλ μΈμ λ μ¬ν λΉ κ°λ₯.
κ·Έ μ€ μμλ μ¬ν λΉ λΆκ°λ₯.
νμ§λ§ μμμ λ³κ²½ λΆκ°λ₯ν κ°μ λμΌμ β
μμμ κ°μ²΄λ₯Ό ν λΉνλ©΄ μ¬ν λΉμ β κ°(λ΄μ©) λ³κ²½μ κ°λ₯
μμ κ°μ μ¬ν λΉ -> μλ‘μ΄ λ©λͺ¨λ¦¬ κ³΅κ° ν보 -> μ¬ν λΉν μμκ° μ μ₯ -> λ³μκ° μ°Έμ‘°νλ λ©λͺ¨λ¦¬ μ£Όμκ° λ°λ.
(μ΄μ κ°μ μμ°μ΄λκΉ λμ€μ GCκ° μμ¨κ±°μ)
π λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμκ° λ³κ²½λ μ΄μ
: μμ κ°μ λ³κ²½ λΆκ°λ₯ν κ°μ΄κΈ° λλ¬Έ. === κ°μ λΆλ³μ± λλ¬Έ
: μμ κ°μ μ¬ν λΉ μΈμ λ³μ κ°μ λ³κ²½ν μ μλ λ°©λ²μ΄ μλ€.
11.1.2 λ¬Έμμ΄κ³Ό λΆλ³μ±
λ¬Έμμ΄λ§ λͺκ°μ λ¬Έμλ‘ μ΄λ€μ‘λλμ λ°λΌ -> λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°κ° κ²°μ λ¨. (λ¬Έμ 1κ°λΉ 2λ°μ΄νΈμ.)
μ«μλ 1λ, 10000 λ λμΌν 8λ°μ΄νΈκ° νμν¨.
λ€λ₯Έ μΈμ΄μλ string νμ μ΄ μλ κ²½μ°λ μμ§λ§, JSλ μ 곡νκ³ λ³κ²½λΆκ°λ₯ ν κ°μ.
λ¬Έμμ΄μ μ μ¬ λ°°μ΄ κ°μ²΄ & μ΄ν°λ¬λΈ => λ°°μ΄κ³Ό μ μ¬νκ² κ° λ¬Έμμ μ κ·Ό κ°λ₯.
π μ μ¬ λ°°μ΄ κ°μ²΄
- index λ‘ νλ‘νΌν° κ°μ μ κ·Ό κ°λ₯
- length νλ‘νΌν°λ₯Ό κ°λ κ°μ²΄
-> for λ¬ΈμΌλ‘ μν κ°λ₯
indexλ₯Ό ν΅ν΄ κ° λ¬Έμμ μ κ·Όμ κ°λ₯νμ§λ§, λ³κ²½μ μλ¨. (μλλ€κ³ μλ €μ£Όμ§λ μμ)
11.1.3 κ°μ μν μ λ¬
λ³μμ λ³μ ν λΉ => 볡μ¬ν μλ‘μ΄ κ°μ΄ ν λΉλ¨.
λ³μμ κ·Έ λ³μμ ν λΉλ λ³μλ κ°μ κ°μ§λ§, ===
λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ λ³κ°μ κ°μ.
=> λ³μ -> λ³μλ‘ ν λΉ ν, νλμ λ³μμ κ°μ λ³κ²½ νμ λ : κ°κ° μλ¬΄λ° μν₯λ λ―ΈμΉμ§ μλλ€.
'κ°μ μν μ λ¬' μ΄λ μ©μ΄λ JS μ©μ΄λ μλλΌμ ν·κ°λ¦¬μ§ λ§κ².
(λ³μμ κ°μ μλ³μλ κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μλ€)
π κ²°λ‘
λ³μμ μμκ°μ κ°λ λ³μλ₯Ό ν λΉνλ©΄ => λ λ³μμ μμ κ°μ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ λ³κ°μ κ°μ΄ λμ΄,
μ΄λ νμͺ½μμ μ¬ν λΉμ ν΅ν΄ κ°μ λ³κ²½νλλΌλ μλ‘ κ°μν μ μλ€.!
π₯ͺ 11.2 κ°μ²΄
κ°μ²΄ : νλ‘νΌν°μ κ°μκ° μ ν΄μ Έ μμ§ μμΌλ©°, λμ μΌλ‘ μΆκ°λκ³ μμ ν μ μλ€.
=> ν보ν λ©λͺ¨λ¦¬ 곡κ°μ ν¬κΈ°λ₯Ό μ¬μ μ μ ν΄λ μ μμ.
(μμ κ°κ³Όλ λ€λ₯Έ λ°©μμΌλ‘ λμν¨)
=> ν΄μ λΌλ κ³³μ μ£Όμλ₯Ό μ μ₯
11.2.1 λ³κ²½ κ°λ₯ν κ°
κ°μ²΄λ λ³κ²½ κ°λ₯ν κ².
κ°μ²΄λ₯Ό ν λΉν λ³μ -> λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όνλ©΄ μ°Έμ‘°κ°μ μ κ·Όν μ μμ.
μ°Έμ‘°κ° : μμ±λ κ°μ²΄κ° μ μ₯λ λ©λͺ¨λ¦¬μ μ£Όμ κ·Έ μ체
κ°μ ν λΉνλ©΄ λ³μλ ~ κ°μ κ°λλ€, κ°μ΄ ~λ€ λΌκ³ μκΈ°νμ§λ§,
κ°μ²΄λ₯Ό ν λΉν λ³μλ κ°μ²΄λ₯Ό μ°Έμ‘°νκ³ μλ€, κ°μ²΄λ₯Ό κ°λ¦¬ν€κ³ μλ€ λΌκ³ νν
π κ°μ²΄λ₯Ό ν λΉν λ³μλ μ¬ν λΉ μμ΄ κ°μ²΄λ₯Ό μ§μ λ³κ²½ν μ μλ€.
μ¦, νλ‘νΌν°λ₯Ό λμ μΌλ‘ μΆκ°, κ°±μ , μμ κ°λ₯
(κ°μ²΄λ₯Ό ν λΉν λ³μμ μ°Έμ‘°κ°μ΄ λ³κ²½λμ§ μμ. )
μ΄μ : λ©λͺ¨λ¦¬μ ν¨μ¨μ±κ³Ό μ±λ₯μ μν¨.
λ¨μ : μμκ°κ³Όλ λ€λ₯΄κ² μ¬λ¬ κ°μ μλ³μκ° νλμ κ°μ²΄λ₯Ό 곡μ ν μ μλ€λ κ².
π μμ λ³΅μ¬ Shallow Copy & κΉμ λ³΅μ¬ Deep Copy
μμ λ³΅μ¬ Shallow Copy | κΉμ λ³΅μ¬ Deep Copy |
- κ°μ²΄μ μ€μ²©λ κ°μ²΄μ κ²½μ° μ°Έμ‘°κ°μ λ³΅μ¬ (λ©λͺ¨λ¦¬ μ£Όμ) - κ°μ²΄λ₯Ό ν λΉν λ³μλ₯Ό λ€λ₯Έ λ³μμ ν λΉνλ κ² |
- κ°μ²΄μ μ€μ²©λ κ°μ²΄κΉμ§ λͺ¨λ 볡μ¬, μμ κ°μ²λΌ μμ ν 볡μ¬λ³Έ λ§λ¦ - μμκ°μ ν λΉν λ³μλ₯Ό λ€λ₯Έ λ³μμ ν λΉνλ κ² |
(λ°°μ΄ λ±μ κ°κ³΅ν λ μ£Όμν΄μΌν¨.)
11.2.2 μ°Έμ‘°μ μν μ λ¬
μ°Έμ‘°μ μν μ λ¬ : κ°μ²΄λ₯Ό κ°λ¦¬ν€λ λ³μλ₯Ό λ€λ₯Έ λ³μμ ν λΉ -> μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ μ λ¬λ¨
=> μ μ₯λ λ©λͺ¨λ¦¬ μ£Όμλ λ€λ₯΄μ§λ§ λμΌν μ°Έμ‘° κ°μ΄ λ€μ΄μμ.
=> λ κ°μ μλ³μκ° νλμ κ°μ²΄λ₯Ό 곡μ νλ€λ κ²
=> μλ³Έ, μ¬λ³Έ μ€ νμͺ½μμ κ°μ²΄λ₯Ό λ³κ²½νλ©΄ μλ‘ μν₯μ μ£Όκ³ λ°μ..!!
π μλ°ν λ§νλ©΄ κ°μ μν μ λ¬μ΄λ μ°Έμ‘°μ μν μ λ¬μ΄λ
κ°κ³ μλ μ£Όμ κ°μ΄ 볡μ¬λλ 건 λμΌνκΈ° λλ¬Έμ
JSμμλ κ°μ μν μ λ¬λ§ μ‘΄μ¬νλ€κ³ ν μ μμ.
ν΄μ¦ λ§μ·μΌλ©΄ μ΄ν΄νκ±°μ.
'λ μ λͺ©λ‘ > λͺ¨λ₯λ€ Modern JS Deep Dive' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λͺ¨λ₯λ€] 13μ₯ μ€μ½ν (0) | 2023.05.05 |
---|---|
[λͺ¨λ₯λ€] 12μ₯ ν¨μ (0) | 2023.05.04 |
[λͺ¨λ₯λ€] 09μ₯ νμ λ³νκ³Ό λ¨μΆ νκ° (0) | 2023.05.01 |
[λͺ¨λ₯λ€] 03μ₯ μλ°μ€ν¬λ¦½νΈ κ°λ° νκ²½κ³Ό μ€ν λ°©λ² (0) | 2023.04.25 |
[λͺ¨λ₯λ€] 02μ₯ μλ°μ€ν¬λ¦½νΈλ? (0) | 2023.04.24 |