11. μμ νμ κ³Ό κ°μ²΄ νμ μ μ°¨μ΄(μ½μ€νκ³Ό ν)
π μμ νμ κ³Ό κ°μ²΄ νμ μ μ°¨μ΄
μμ νμ μ κ°μ μ½ μ€νμ μ μ₯
κ°μ²΄ νμ μ κ°μ νμ μ μ₯
κ°μ²΄ νμ μ μ½μ€νμ valueμ κ°μ²΄κ° μλ νμ μ μ₯λ λ©λͺ¨λ¦¬μ£Όμλ₯Ό μ μ₯νλ€.
μ’ λ μ½κ² νκΈ° (24.01 μΆκ°)
λΉνΈ(bit)λ 0κ³Ό 1λ‘ ννν μ μκ³ κ³ μ μ μλ³μλ‘ μμΉλ₯Ό μ μ μλ€.
μ’λ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄ λΉνΈλ₯Ό μ λΉν λ¬ΆμμΌλ‘ κ΄λ¦¬νκ² λ°μ΄νΈ(byte).
1λ°μ΄νΈμλ 8κ°μ λΉνΈλ‘ λ¬Άμ¬μλ€.
κ·Έλ¦¬κ³ 1λΉνΈλ 0,1 λκ°μ§λ‘ ννν μ μκΈ° λλ¬Έμ
256κ°(2μ 8μΉ)κ°μ ννν μ μλ€.
λͺ¨λ λ°μ΄ν°λ μ΄λ κ² λ°μ΄νΈ λ¨μμ μλ³μμΈ λ©λͺ¨λ¦¬ μ£Όμκ°μ ν΅ν΄μ ꡬλΆνκ³ μ°κ²°νλ€.
μμ νμ : number, string, boolean, undefined, null, symbol
μ°Έμ‘° νμ : array, function, data, RegExp, Map, WeekMap, Set, WeekSet
곡ν΅μ :
λ νμ λ€ λ³μμ κ°μ ν λΉν κ°μ΄ μ μ₯λ λ°μ΄ν° 곡κ°μ μ£Όμκ°μ 볡μ νλ€.
λ€λ₯Έμ :
μμ νμ μ ν λΉλ κ°μ΄ μ μ₯λ λ°μ΄ν° 곡κ°μ μ£Όμκ°μ λ°λ‘ 볡μ νλ κ²μ΄κ³ ,
μ°Έμ‘° νμ μ ν λΉλ νλ‘νΌν° κ°λ€μ΄ μ μ₯λ λ°μ΄ν° 곡κ°μ μ£Όμκ°λ€μ λ¬Άμμ λ°λΌλ³΄λ μ£Όμκ°μ 볡μ νλ κ².
π μμ νμ κ³Ό κ°μ²΄ νμ μ μ°¨μ΄ μμ - λΆλ³κ°κ³Ό κ°λ³κ°
let age = 35;
let oldAge = age;
age = 36;
console.log(age); //35
console.log(oldAge); //36
const me = {
name : ‘Kyle’,
age : 35
};
const friend = me;
friend.age = 33;
console.log(friend); //{ name : ‘Kyle’, age : 33 }
console.log(me); //{ name : ‘Kyle’, age : 33 }
Ageμ oldAgeλ₯Ό μμνμ Numberλ‘ ν λΉμ νλ€λ©΄, κ·Έλ¦¬κ³ κ°μ μ«μ 35λ₯Ό ν λΉμ νλ€λ©΄!
μ΄λ―Έ λ³μ ageμμ 35κ° λ³λ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λμ΄ μκΈ° λλ¬Έμ κ·Έ κ°μ μ¬νμ©ν΄μ
oldAgeμ ageμ κ°μ λ©λͺ¨λ¦¬μ£Όμλ₯Ό λ³μκ°μΌλ‘ μ μ₯νλ€.

κ·Έλμ λ λ³μ μ λΆ κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°μ§κ³ μλ€.
κ·Έλμ κ·Έ λ©λͺ¨λ¦¬μμ λ€μ΄μλ value35κ° μ°νλ€.
λ§μ½ μ΄λ ageμ valueλ₯Ό 36μΌλ‘ λ³κ²½νκ² λλ©΄
λ³λμ λ°μ΄ν° λ©λͺ¨λ¦¬ 곡κ°μ 36μ κ°μ΄ μκΈ°λλ¬Έμ 0002μ 곡κ°μ λ§λ€μ΄μ 36μ μ μ₯νλ€.

κ·Έλμ λ³μ ageκ°μ μλ‘μ΄ λ©λͺ¨λ¦¬μ£Όμ 0002λ₯Ό ν λΉνλ€.
μ΄λλ κ°μ΄ λ€λ₯΄κΈ° λλ¬Έμ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό λ°λΌλ³΄κ³ μλ€λκ²μ νμΈν μ μλ€.
λ°λΌμ λ³μμ ν λΉκ°μ λ³κ²½νμλ κΈ°μ‘΄μ λ°λΌλ³΄κ³ μλ μ£Όμμ κ°μ λ³κ²½νλκ² μλ
λ°μ΄ν° 곡κ°μ λ³κ²½ν κ°μ΄ μλμ§ μ°Ύμ ν μμΌλ©΄ κ·Έ μ£Όμκ°μΌλ‘ λ³μμ κ°μ μ μ₯νκ³
μμΌλ©΄ λ€λ₯Έ λ°μ΄ν° 곡κ°μ ν λΉκ°μ μ μ₯νκ³ κ·Έ μ£Όμκ°μ λ³μμ κ°μ μ μ₯νκΈ° λλ¬Έ
μ λΆλ³μ±μ κ°λλ€κ³ νλ€.
μ΄λ κ² μμ νμ μ λΆλ³μ±μ κ°λλ€!
κ°μ²΄ νμ μΌλ‘ μ μΈνλ©΄ μμνκ³Όλ μ‘°κΈ λ€λ₯΄λ€.
κ°μ²΄μ λ³μ(νλ‘νΌν°) μμμ΄ λ°λ‘ μ‘΄μ¬νλ€.
meλΌλ λ³μμ name,age νλͺ©μ΄ λ΄κΈ΄ κ°μ²΄λ₯Ό μ μΈν΄μ μ μ₯μ ν΄μ£Όλλ°
μ½μ€νμ valueμλ κ°μ²΄λ₯Ό μ μ₯νλκ² μλλΌ νμ μ μ₯λμ΄ μλ κ°μ²΄μ μ£Όμκ°μ μ μ₯νλ€.
(λ³΄ν΅ κ°μ²΄λ€μ νμ μ μ₯μ νλ€.)
κ·Έλ¦¬κ³ κ·Έ μ£Όμλ₯Ό λ©λͺ¨λ¦¬μ£Όμμ μ°κ²°μμΌμ μ½μ€νμμλ νμ ν΄λΉ κ°μ²΄μ£Όμλ₯Ό λ°λΌλ³΄λκ².

λ§μ½μ meκ°μ²΄μ ageκ°μ 33μΌλ‘ λ°κΎΈλ©΄ μ΄λ»κ² λ κΉ?

meμ ageκ°λ§ 33μΌλ‘ λ³κ²½ν΄λ meμ friend μ λΆ κ°μ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό λ°λΌλ³΄κ³
μκΈ°λλ¬Έμ λ λ³μμ κ°μ²΄ λͺ¨λ ageκ°μ΄ 33μΌλ‘ λ³νκ²λλ€.
μ΄κ²μ΄ λ°λ‘ κ°μ²΄μ μμ 볡μ¬!
μμ κ·Έλ¦Όμ²λΌ μμ 볡μ¬(Shallow Copy)λ κ°μ²΄λ₯Ό 볡μ¬ν λ
μλ³Έ κ°κ³Ό 볡μ¬λ κ°μ΄ κ°μ μ°Έμ‘°(=λ©λͺ¨λ¦¬ μ£Όμ)λ₯Ό κ°λ¦¬ν€λ κ²μ΄λ€.
μμ 볡μ¬μ μ£Όμν μ μ μλ³Έμ λΆλ³μ±μ μ§μΌμ€μΌ λλ€λκ²!!(μ€μ)
λΆλ³μ±μ μ§μΌμ£Όμ§ λͺ»νλ©΄ λ€λ₯Έ μμ ν¨μμλ μν₯μ λ―ΈμΉλ€.
λ°λλ‘ κ°μ²΄μ κΉμ 볡μ¬λ μλ‘μ΄ λ©λͺ¨λ¦¬ 곡κ°μ νλ³΄ν΄ μμ ν 볡μ¬νλ κ²μ μλ―Ένλ€.
κ·Έλμ 볡μ¬ν κ°μ²΄μ κ°μ λ³κ²½ν΄λ μλ³Έκ³Όλ λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ λ°λΌλ³΄κ³ μκΈ°λλ¬Έμ
μλ³Έκ°μ²΄λ λ°λμ§ μλλ€.
κ°μ²΄μ μμ 볡μ¬λ Object.assign()μ μ¬μ©νκ³
κ°μ²΄μ κΉμ 볡μ¬λ lodash JSλΌμ΄λΈλ¬λ¦¬μ clonedeepμ μ¬μ©νλκ²λ λ°©λ²μ€ νλ!