π 3μ£Όμ°¨ 컀리νλΌμ κ°λ°μ κ½ μ΄λΌκ³ λ³Ό μ μλ JavaScript κΈ°μ΄μ λν΄ νμ΅μ νλ€.
νμ΅μ νλ©΄μ λλμ μ μ λ§ λ§μ΄ 곡λΆν΄μΌκ² λ€ λΌλκ±Έ λκΌλ€..
μ½λ νλνλκ° μ€μνλ€λκ²λ λκΌλ€ , μ½κ² μκ°ν΄μλ μλλ μΈμ΄κ° λ°λ‘ JS μΈ κ² κ°λ€.
μ λ§ λ§€λ ₯μ μΈ μΈμ΄λ€.
μλ°μ€ν¬λ¦½νΈμμ == μ === κ° μ΄λ»κ² λ€λ₯Έμ§ μ€λͺ ν΄ μ£ΌμΈμ.
JSμμ == μ === κ°μ μ°μ°μλ₯Ό
"λλ± λΉκ΅ κ΄κ³ μ°μ°μ (Equality operators)"
λΌκ³ νλ€.
μ§λ¬Έμμ == λ κ°λ§ κ°μ λ μ¦ , μΆλ ₯λλ κ°λ§ κ°μ λ λΉκ΅λ₯Όν΄μ€λ€.
π // == κ°λ§ κ°μ λ
console.log(2 == 2); //true
console.log(2 == 3); //false
console.log(2 == '2'); //true
console.log(false == 0); //true
console.log(true == 1); // true
console.log(2 == '2'); //true
μ¬κΈ°μ μ°¨μ΄μ μ΄ λ°μνλ€ .
2μ '2'λ Numberμ string μ΄μ§λ§ μΆλ ₯λλ κ°μ΄ κ°κΈ°μ trueκ° μΆλ ₯λλ€.
π // === κ°κ³Ό νμ μ΄ λλ€ κ°μ λ
console.log(true === 1); //true
console.log(false === 0); // false
console.log(2 === '2'); /// false
console.log(2 === '2'); /// false
==μ λ¬λ¦¬ === μ°μ°μλ νμ κΉμ§ μλ³ν΄μ λ κ°μ λΉκ΅ν΄μ€λ€.
μλ°μ€ν¬λ¦½νΈμμ μμ 볡μ¬(Shallow Copy)μ κΉμ 볡μ¬(Deep Copy)μ λν΄ μ€λͺ ν΄ μ£ΌμΈμ.
κ°μ²΄ λ³΅μ¬ λ°©λ²μ μκΈ° μ μ μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ μ λ¨Όμ μ§κ³ λμ΄κ°μΌ
κ°μ²΄ λ³΅μ¬ λ°©λ²μ μ΄ν΄νκΈ° μμν κ²μ΄λ€.
μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ μλ λκ°μ§ λ°μ΄ν° νμ μΌλ‘ λλλ€.
π μμ νμ (Primitives)
Boolean, Null, Undefined, Number, BigInt, String, Symbol μ΄ μλ€.
μμ νμ μ λ³μλ€μ λ°μ΄ν° 볡μ¬κ° μΌμ΄λ λ λ©λͺ¨λ¦¬ 곡κ°μ μλ‘ ν보νμ¬
λ 립μ μΈ κ°μ μ μ₯νλ€.
μμ νμ μ λΆλ³ λ°μ΄ν°(Immutable Data)μ΄λ―λ‘ νλ² μμ±λλ©΄ Read Only μμ±μ κ°μ§λ©°, λ³κ²½ λ μ μλ€.
μμνμ μ μ μΈν λλ¨Έμ§ κ°λ€(ν¨μ, λ°°μ΄, μ κ·ννμ λ±)μ λͺ¨λ κ°μ²΄μ΄λ€.
π κ°μ²΄νμ (object/reference type)
κ°μ²΄λ λ°μ΄ν°μ κ·Έ λ°μ΄ν° κ΄λ ¨ν λμμ λͺ¨λ ν¬ν¨νλ κ°λ μ μ‘΄μ¬μ΄λ€.
λ€μν λ°μ΄ν°λ₯Ό λ΄μ μ μμ΅λλ€.
β ν€λ‘ ꡬλΆλ λ°μ΄ν° μ§ν©μ΄λ κ°μ²΄(entity)λ₯Ό μ μ₯ν μ μλ€.
-κ°μ²΄ νμ μ λ³κ²½ κ°λ₯ν κ°(mutable value)μ΄λ€.
μμ볡μ¬(Shallow Copy)
- μμ 볡μ¬λ μ£Όλ‘ κ°μ²΄μ λ°°μ΄μ λ€λ£° λ μ¬μ©λλ€.
- λ΄λΆμ μμ(κ°μ²΄ λλ λ°°μ΄)λ 볡μ¬λμ§ μκ³ μλ³Έμ 곡μ νλ€ μ΄λ‘ μΈν΄
볡μ¬λ³Έμ μμ ν λ μλ³Έμλ μν₯μ λ―ΈμΉ μ μλ€.
κΉμ 볡μ¬(Deep Copy)
- κΉμ 볡μ¬λ λͺ¨λ μ€μ²©λ κ°μ²΄μ λ°°μ΄μ μΌλΆλ₯Ό λ°λ³΅νλ©΄μ 볡μ¬νμ¬ μλ‘μ΄ λ³΅μ¬λ³Έμ λ§λ λ€.
- κΉμ 볡μ¬λ₯Ό μ¬μ©νλ©΄ 볡μ¬λ³Έμ μμ ν λ 립μ μΈ λ°μ΄ν° κ΅¬μ‘°κ° λλ€.
μ΄λ‘ μΈν΄ μμ ν λ μλ³Έμ μν₯μ΄ λ―ΈμΉμ§ μκ³ λ³΅μ¬λ³Έμλ§ μν₯μ λ―ΈμΉλ€.
μμ 볡μ¬μ κΉμ 볡μ¬λ λ°μ΄ν°λ₯Ό λ€λ£° λ μ€μν κ°λ μ΄λ©°, λ°μ΄ν° ꡬ쑰μ μν©μ λ°λΌ μ μ ν λ°©λ²μ μ νν΄μΌνλ€.