π λ°μ΄ν° νμ λ κ°μ§
μμ νμ (Primitive) | μ°Έμ‘° νμ (Reference) |
number | array |
string | object |
boolean | function |
null | RegExp |
undefined | |
symbol |
μλ°μ€ν¬λ¦½νΈμμ λ κ°μ§μ λ°μ΄ν° νμ μ΄ μ‘΄μ¬νλ€.
μμ νμ μ λ°μ΄ν°μ κ°μ₯ μμ λ¨μλ‘ λ μ΄μ μͺΌκ°μ§ μ μκ³ , νλμ λ°μ΄ν°λ§μ κ°μ§λ€.
μ°Έμ‘° νμ μ μμ νμ μ λͺ¨μλ μ§ν©μΌλ‘ μμ νμ μ μ μΈν λλ¨Έμ§λ λͺ¨λ μ°Έμ‘° νμ μ΄λ€.
κ·Έλ λ€λ©΄ λΆλ³μ±κ³Ό κ°λ³μ±μ 무μμΌκΉ?
μμ νμ μ λΆλ³μ±μ λ κ³ , μ°Έμ‘° νμ μ κ°λ³μ±μ λ€λ€.
μλμμ μμ보μ.
π λΆλ³μ±
λΆλ³μ±μ μκΈ°νκΈ° μ μ λ°μ΄ν°μ μ μ₯ λ°©μμ μ΄ν΄λ³΄μ.
let a = 1;
λ³μ aλ₯Ό μ μΈνκ³ 1μ ν λΉνλ€.
μ΄λ λ©λͺ¨λ¦¬μλ μ΄λ€ μΌμ΄ λ°μν κΉ?
aλ₯Ό μν μλ‘μ΄ λ©λͺ¨λ¦¬λ₯Ό ν λΉ λ°μ ν κ° 1μ μ μ₯ν κ²μ΄λ€.
let a = 1;
a = 2;
μ΄μ aμ μλ‘μ΄ κ°μ ν λΉνλ©΄ μ΄λ»κ² λ κΉ?
2λ μλ‘μ΄ λ©λͺ¨λ¦¬μ μ μ₯λκ³ , aλ μλ‘κ² ν λΉ λ°μ λ©λͺ¨λ¦¬λ₯Ό κ°λ¦¬ν€κ² λλ€.
aμ 2λ₯Ό ν λΉνλ€κ³ ν΄μ λ¨Όμ ν λΉλμλ 1μ΄ λ³κ²½λμ§ μλλ€.
μ¦ μ΄μ²λΌ ν λ² μμ±λ κ°μ λ³κ²½ν μ μλ κ²μ λΆλ³μ±μ΄λΌκ³ νλ€.
κ·ΈλΌ λͺ¨λ λ°μ΄ν°κ° λΆλ³μ±μΈ κ±ΈκΉ?
μ΄μ κ°λ³μ±μ λ λ λ°μ΄ν° νμ μ μμ보μ.
πκ°λ³μ±
κ°λ³μ±μ μκΈ°νκΈ° μ μ μ€λΈμ νΈ λ¨Όμ μ΄ν΄λ³΄μ.
const obj = {
name: haesa,
age: 22,
};
λ³μ objμ nameκ³Ό ageλ₯Ό keyλ‘ κ°μ§κ³ μλ μ€λΈμ νΈλ₯Ό ν λΉνλ€.
λ©λͺ¨λ¦¬μλ μ΄λ€ μΌμ΄ λ°μν κΉ?
objμλ μ€λΈμ νΈμ κ° κ·Έ μμ²΄κ° ν λΉλλκ² μλλΌ μ€λΈμ νΈκ° μ μ₯λ λ©λͺ¨λ¦¬μ μ£Όμ, μ¦ μ°Έμ‘°κ°μ΄ ν λΉλλ€.
const obj = {
name: haesa,
age: 22,
};
const obj2 = obj;
μλ‘μ΄ λ³μ obj2λ₯Ό μ μΈνκ³ objλ₯Ό ν λΉνλ©΄ μ΄λ»κ² λ κΉ?
obj2μλ objκ° κ°μ§κ³ μλ μ°Έμ‘°κ°μ΄ 볡μ¬λλ€.
μ¬κΈ°μ μ€λΈμ νΈ μμ²΄κ° λ³΅μ¬λ ν, μλ‘ μμ±λ μ€λΈμ νΈμ μ£Όμκ°μ΄ ν λΉλμ§ μλ μ΄μ λ μλ°μ€ν¬λ¦½νΈκ° μμ 볡μ¬λ₯Ό νκΈ° λλ¬Έμ΄λ€.
μμ 볡μ¬(Shallow Copy)λ μ΄μ κ²μκΈμ μ 리ν΄λμΌλ μ°Έκ³ νλ©΄ μ’μ κ² κ°λ€.
https://pd6156.tistory.com/252
→ μ μμ λ€μμ μμλ΄€λ―μ΄ λ³μμ μ€λΈμ νΈλ₯Ό ν λΉνλ©΄ μ€λΈμ νΈμ κ°μ΄ μλ κ·Έ μ°Έμ‘°κ°μ΄ ν λΉλλ€λ κ±Έ μμλμ.
obj.age = 20;
μ΄μ obj.ageμ μλ‘μ΄ κ°μ ν λΉν΄λ³΄μ.
λ©λͺ¨λ¦¬λ μ΄λ»κ² λ³κ²½λ κΉ?
μ€λΈμ νΈμ νλ‘νΌν°μ μλ‘μ΄ κ°μ΄ ν λΉλλ κ²½μ°, λ³μκ° κ°μ§ μ°Έμ‘°κ°μΌλ‘ μ€λΈμ νΈμ μ κ·Όν ν νλ‘νΌν°λ₯Ό λ³κ²½νκ² λλ€.
μμ νμ κ³Όλ λ¬λ¦¬ μ°Έμ‘° νμ μ μ²μ μμ±λ λ°μ΄ν°κ° λ³κ²½λμλ€.
μ΄μ κ°μ μ±μ§ λλ¬Έμ μ°Έμ‘°ν λ°μ΄ν°λ κ°λ³μ±μ λ κ² λλ€.
'JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] ES6+ λ¬Έλ² μ 리 (0) | 2022.07.01 |
---|---|
[JS] Shallow Copy (1) | 2022.06.27 |
[JS] Getterμ Setter (0) | 2022.06.23 |
[JS] ν¨μμ λ©λͺ¨λ¦¬ (0) | 2022.06.19 |