[JavaScript] 8. μμ κ°κ³Ό κ°μ²΄μ λΉκ΅
π λͺ¨λ μλ°μ€ν¬λ¦½νΈ κ΅μ¬) 11μ₯. μμ κ°κ³Ό κ°μ²΄μ λΉκ΅
μλ°μ€ν¬λ¦½νΈκ° μ 곡νλ 7κ°μ§ λ°μ΄ν° νμ (μ«μ, λ¬Έμμ΄, λΆλ¦¬μΈ, null, undefinedm μ¬λ², κ°μ²΄ νμ )μ μμ νμ κ³Ό κ°μ²΄ νμ μΌλ‘ ꡬλΆν μ μλ€.
- μμ νμ
μ κ°
- λ³κ²½ λΆκ°λ₯ν κ°
- μμ κ°μ λ³μμ ν λΉνλ©΄ λ³μ(ν보λ λ©λͺ¨λ¦¬ 곡κ°)μλ μ€μ κ° μ μ₯
- κ°μ μν μ λ¬ : λ€λ₯Έ λ³μμ ν λΉνλ©΄ μλ³Έμ μμ κ° λ³΅μ¬λμ΄ μ λ¬
- κ°μ²΄(μ°Έμ‘°) νμ
μ κ°
- λ³κ²½ κ°λ₯ν κ°
- κ°μ²΄λ₯Ό λ³μμ ν λΉνλ©΄ λ³μ(ν보λ λ©λͺ¨λ¦¬ 곡κ°)μλ μ°Έμ‘° κ° μ μ₯
- μ°Έμ‘°μ μν μ λ¬ : λ€λ₯Έ λ³μμ ν λΉνλ©΄ μλ³Έμ μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ μ λ¬
01. μμ κ°
1) λ³κ²½ λΆκ°λ₯ν κ°
μμ νμ μ κ°μ λ³κ²½ λΆκ°λ₯ν κ°μ΄λ€.
νλ² μμ±λ μμ κ°μ μ½κΈ° μ μ© κ°μΌλ‘μ λ³κ²½ν μ μλ€.
2) λ¬Έμμ΄κ³Ό λΆλ³μ±
μλ°μ€ν¬λ¦½νΈμ λ¬Έμμ΄μ μμ νμ μ΄λ©°, λ³κ²½ λΆκ°λ₯νλ€.
μ΄κ²μ λ¬Έμμ΄μ΄ μμ±λ ν λ³κ²½λ κ²μΈμ§, μ½λλ₯Ό ν΅ν΄ μμ보μ.
π₯οΈ μμ μ½λ
var str = 'Hello';
str = 'world';
첫 λ²μ§Έ λ¬Έ -> λ¬Έμμ΄ 'Hello' μμ±, μλ³μ strμ λ¬Έμμ΄ 'Hello'κ° μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ 첫 λ²μ§Έ λ©λͺ¨λ¦¬ μ μ£Όμλ₯Ό κ°λ¦¬ν΄.
λ λ²μ§Έ λ¬Έ -> μλ‘μ΄ λ¬Έμμ΄ 'world'λ₯Ό λ©λͺ¨λ¦¬μ μμ±, μλ³μ strμ μ΄κ²μ κ°λ¦¬ν΄.
μ΄λ λ¬Έμμ΄ 'Hello'μ 'world'λ λͺ¨λ λ©λͺ¨λ¦¬μ μ‘΄μ¬νλ€.
μλ³μ strμ λ¬Έμμ΄ 'Hello'λ₯Ό κ°λ¦¬ν€κ³ μλ€κ° λ¬Έμμ΄ 'world'λ₯Ό κ°λ¦¬ν€λλ‘ λ³κ²½λμμ λΏμΈ κ²μ΄λ€.
3) κ°μ μν μ λ¬
"κ°μ μν μ λ¬" μ΄λΌκ³ λ νμ§λ§, κ°μ μ λ¬νλ κ²μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό μ λ¬νλ€.
λ¨, μ λ¬λ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όνλ©΄ κ°μ μ°Έμ‘°ν μ μλ€.
π₯οΈ μμ μ½λ
var score = 80;
var copy = score;
console.log(score); // 80
console.log(copy); // 80
score = 100;
console.log(score); // 100
console.log(copy); // ?
μ μμ μμ ? μλ 무μμ΄ λ€μ΄κ°μΌ ν κΉ.
"λ³μμ λ³μλ₯Ό ν λΉνμ λ 무μμ΄ μ΄λ»κ² μ λ¬λλκ°?" μ λν λ΅λ³μ΄ λ κ²μ΄λ€.
copy λ³μμ μμ κ°μ κ°λ score λ³μλ₯Ό ν λΉνλ©΄, ν λΉλ°λ λ³μ(copy)μ ν λΉλλ λ³μ(score)μ μμ κ° 80μ΄ λ³΅μ¬λμ΄ μ λ¬λλ€.
β‘οΈ score λ³μμ μλ‘μ΄ μ«μ κ° 100μ μ¬ν λΉνλλΌλ, copy λ³μμλ μμ κ° 80μ΄ λ³΅μ¬λμ΄ μ λ¬λμκΈ° λλ¬Έμ, μ¬μ ν copy λ³μμ κ°μ 80μ΄λ€.
π‘ score λ³μμ copy λ³μμ κ° 80μ λ€λ₯Έ λ©λͺ¨λ¦¬ 곡κ°μ μ μ₯λ λ³κ°μ κ°μ΄λ€.
λ³μμλ κ°μ΄ μ λ¬λλ κ²μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμκ° μ λ¬λλ€.
λ³μμ κ°μ μλ³μλ κ°μ΄ μλλΌ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κΈ°μ΅νκ³ μκΈ° λλ¬Έμ΄λ€.
β» μλ³μλ λ©λͺ¨λ¦¬ μ£Όμμ λΆμΈ μ΄λ¦μ΄λΌκ³ ν μ μλ€.
02. κ°μ²΄
1) λ³κ²½ κ°λ₯ν κ°
π₯οΈ μμ μ½λ
var person = {
name: 'Lee'
};
κ°μ²΄λ₯Ό ν λΉν λ³μκ° κΈ°μ΅νλ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όνλ©΄ μ°Έμ‘° κ°(reference value)μ μ κ·Όν μ μλ€.
μ°Έμ‘° κ°μ μμ±λ κ°μ²΄κ° μ μ₯λ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμ, κ·Έ μ체λ€.
κ°μ²΄λ₯Ό ν λΉν λ³μλ "λ³μλ κ°μ²΄λ₯Ό μ°Έκ³ νκ³ μλ€" λλ "λ³μλ κ°μ²΄λ₯Ό κ°λ¦¬ν€κ³ μλ€"λΌκ³ νννλ€.
μ μμ μμ person λ³μλ κ°μ²΄ { name: 'Lee' }λ₯Ό μ°Έκ³ νκ³ (κ°λ¦¬ν€κ³ ) μλ€.
κ°μ²΄λ₯Ό ν λΉν λ³μλ μ¬ν λΉ μμ΄ κ°μ²΄λ₯Ό μ§μ λ³κ²½ν μ μλ€.
-> μ¬ν λΉ μμ΄ νλ‘νΌν° λμ μΆκ° / νλ‘νΌν° κ° κ°±μ / νλ‘νΌν° μ체λ₯Ό μμ κ°λ₯
π‘ μμ 볡μ¬μ κΉμ 볡μ¬
- μμ λ³΅μ¬ : 1λ¨κ³λ§ 볡μ¬
- κΉμ λ³΅μ¬ : μ¬κ·μ μΌλ‘ μμ κ°κΉμ§ μ λΆ λ³΅μ¬
2) μ°Έμ‘°μ μν μ λ¬
π₯οΈ μμ μ½λ
var person = {
name: 'Lee'
};
// μ°Έμ‘° κ°μ 볡μ¬(μμ 볡μ¬)
var copy = person;
β‘οΈ κ°μ²΄λ₯Ό κ°λ¦¬ν€λ λ³μ(μλ³Έ, person) -> λ³μ(μ¬λ³Έ, copy)μ ν λΉνλ©΄ μλ³Έμ μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ μ λ¬λλ€.
β‘οΈ λ κ°μ μλ³μ(person, copy) κ° νλμ κ°μ²΄λ₯Ό 곡μ νκ² λλ€.
β‘οΈ μλ³Έ λλ μ¬λ³Έ μ€ μ΄λ νμͺ½μμ κ°μ²΄λ₯Ό λ³κ²½(κ°μ²΄μ νλ‘νΌν° κ°μ λ³κ²½νκ±°λ νλ‘νΌν° μΆκ°, μμ )νλ©΄ μλ‘ μν₯μ μ£Όκ³ λ°λλ€.
π μ°Έκ³ μλ£
[무λ£] λͺ¨λ μλ°μ€ν¬λ¦½νΈ λ₯λ€μ΄λΈ μ€ν°λ - μΈνλ° | κ°μ
γλͺ¨λ μλ°μ€ν¬λ¦½νΈ λ₯λ€μ΄λΈγ μ± λ΄μ©μ κ·Έλλ‘ λ°λΌκ°λ μ€ν°λ μμμ λλ€. ν¨κ» 곡λΆνλ©΄ ν¨μ¬ μ¬μμ§ κ±°μμ!, - κ°μ μκ° | μΈνλ°
www.inflearn.com