μλ°μ€ν¬λ¦½νΈλ₯Ό μ¬μ©νλ€ λ³΄λ©΄ λλλ‘ μμμΉ λͺ»ν λμμ λΉν©ν λκ° μμ΅λλ€. μ΄λ° μν©μ λλΆλΆμ μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ κ³Ό κ·Έ λ©λͺ¨λ¦¬ μ°Έμ‘° λ°©μμ μ λλ‘ μ΄ν΄νμ§ λͺ»ν΄μ λ°μν©λλ€. μ€λμ μ΄ μ£Όμ μ λν΄ ν¨κ» μμλ³΄λ €κ³ ν©λλ€.
μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ
μλ°μ€ν¬λ¦½νΈμ λ°μ΄ν° νμ μ ν¬κ² λ κ°μ§λ‘ λλ μ μμ΅λλ€:
1. μμ νμ (Primitive Type)
Number
(μ«μ)String
(λ¬Έμμ΄)Boolean
(λΆλ¦¬μΈ)null
undefined
Symbol
(ES6μμ μΆκ°)BigInt
(ES11μμ μΆκ°)
2. μ°Έμ‘° νμ (Reference Type)
Object
(κ°μ²΄)Function
(ν¨μ)Array
(λ°°μ΄) - μ¬μ€ μ΄κ²λ κ°μ²΄μ ν μ’ λ₯μ λλ€!
μλ°μ€ν¬λ¦½νΈμμ λ°°μ΄(Array)μ μ¬μ€ νΉλ³ν μ’ λ₯μ κ°μ²΄μ λλ€. μ΄λ€ λ©΄μμ λ°°μ΄μ λ§λ²μ λΆλ¦° κ°μ²΄λΌκ³ ν μ μμ£ . μΌλ° κ°μ²΄μ λ°°μ΄ μ μ© λ©μλλ€κ³Ό 'length' μμ±, κ·Έλ¦¬κ³ λ°λ³΅ κ°λ₯ν(iterable) νΉμ±μ λν΄μ€ κ²μ΄ λ°λ‘ λ°°μ΄μ΄λΌκ³ λ³Ό μ μμ΅λλ€.
μ΄λ° νΉμ± λλ¬Έμ μ°λ¦¬λ λ°°μ΄μ νμ©ν΄ λ€μνκ³ κ°λ ₯ν μμ μ ν μ μμ΅λλ€. μλ₯Ό λ€μ΄, Array.from() λ©μλλ₯Ό μ¬μ©νλ©΄ λ€μ μ½λμ κ°μ΄ μμ£Ό μ μ°νκ² λ°°μ΄μ μμ±ν μ μμ΅λλ€.
Array.from({length: 3}, () => Array(2).fill(0)); // [[0 ,0], [0, 0], [0, 0]]ββ
μ΄ λ νμ μ κ°μ₯ ν° μ°¨μ΄μ μ λ°λ‘ λ©λͺ¨λ¦¬μ μ΄λ»κ² μ μ₯λκ³ μ°Έμ‘°λλμ§μ μμ΅λλ€.
λ©λͺ¨λ¦¬ μ°Έμ‘° λ°©μμ μ°¨μ΄
μμ νμ
μμ νμ
μ κ°λ€μ λ³μμ ν λΉλ λ λ©λͺ¨λ¦¬μ 'κ° κ·Έ μ체'κ° μ μ₯λ©λλ€. μλ₯Ό λ€μ΄, let a = 5
λΌκ³ νλ©΄, λ³μ a
κ° κ°λ¦¬ν€λ λ©λͺ¨λ¦¬ μμΉμ μ€μ λ‘ 5λΌλ κ°μ΄ μ μ₯λ©λλ€.
μ°Έμ‘° νμ
λ°λ©΄ μ°Έμ‘° νμ μ μ‘°κΈ λ€λ¦ λλ€. κ°μ²΄λ λ°°μ΄ κ°μ μ°Έμ‘° νμ μ κ°λ€μ μ€μ λ°μ΄ν°κ° ν(Heap) λ©λͺ¨λ¦¬ μμμ μ μ₯λκ³ , λ³μμλ κ·Έ λ°μ΄ν°κ° μ μ₯λ λ©λͺ¨λ¦¬ μ£Όμκ° ν λΉλ©λλ€. μ¦, λ³μλ μ€μ λ°μ΄ν°λ₯Ό μ§μ κ°λ¦¬ν€λ κ² μλλΌ, λ°μ΄ν°κ° μλ 'μ£Όμ'λ₯Ό κ°λ¦¬ν΅λλ€.
μ΄λ¬ν μ°Έμ‘° νμ μ νΉμ±μ λ°°μ΄μ λ€λ£° λ νΉν μ£Όμν΄μΌ ν μ λ€μ΄ μμ΅λλ€. μλ₯Ό λ€μ΄, λ°°μ΄μ λΉκ΅λ λ³΅μ¬ κ³Όμ μμ μμμΉ λͺ»ν κ²°κ³Όκ° λμ¬ μ μμ΅λλ€.
[1,2,3] === [1,2,3] // false
[] === [] // false
let nums = [1, 2];
let numsCopy = nums;
nums === numsCopy; // true
μμ κ°μ κ²°κ³Όλ λ°°μ΄μ΄ μ°Έμ‘° νμ μ΄λΌλ νΉμ±μμ λΉλ‘―λ©λλ€.
κ° λ°°μ΄μ λ©λͺ¨λ¦¬μ λ³λλ‘ μμ±λμ΄ μλ‘ λ€λ₯Έ μ°Έμ‘°λ₯Ό κ°μ§λλ€. λ°λΌμ ===
μ°μ°μλ‘ λΉκ΅ν λ, λ°°μ΄μ λ΄μ©μ λΉκ΅νλ κ²μ΄ μλλΌ λ©λͺ¨λ¦¬ μμ μ°Έμ‘°λ₯Ό λΉκ΅νκ² λ©λλ€. λκ°μ κ°μ κ°μ§ λ°°μ΄μ΄λΌλ μλ‘ λ€λ₯Έ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό κ°μ§κ³ μμΌλ―λ‘ false
κ° λ°νλλ κ²μ
λλ€.
λ°λ©΄, let numsCopy = nums;
μ κ°μ΄ λ°°μ΄μ λ€λ₯Έ λ³μμ ν λΉν λλ μ€μ λ°°μ΄μ λ΄μ©μ΄ 볡μ¬λλ κ²μ΄ μλλΌ, ν΄λΉ λ°°μ΄μ μ°Έμ‘°κ° λ³΅μ¬λ©λλ€. λ°λΌμ nums
μ numsCopy
λ κ°μ λ°°μ΄μ κ°λ¦¬ν€κ² λμ΄ ===
μ°μ° κ²°κ³Όκ° true
κ° λ©λλ€.
μ΄λ° νΉμ± λλ¬Έμ const
λ‘ μ μΈλ λ°°μ΄μ λ΄μ©λ λ³κ²½ν μ μμ΅λλ€. const
λ λ³μμ μ μ₯λ κ°(μ¬κΈ°μλ λ°°μ΄μ μ°Έμ‘°)μ λ³κ²½νμ§ λͺ»νκ² ν λΏ, κ·Έ μ°Έμ‘°κ° κ°λ¦¬ν€λ λ°°μ΄μ λ΄μ©μ λ³κ²½νλ κ²μ λ§μ§ μκΈ° λλ¬Έμ
λλ€.
μ΄λ¬ν μ°¨μ΄μ λ€μ μ΄ν΄νκ³ μμΌλ©΄, λ§μ λ²κ·Έλ₯Ό μλ°©ν μ μκ³ λ ν¨μ¨μ μΈ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
'π₯ Develop > Javascript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Javascript] λ°°μ΄κ³Ό κ°μ²΄ μ λ ¬νκΈ° (0) | 2024.07.29 |
---|---|
[Javascript] Object.entries() λ©μλ (0) | 2024.07.27 |
[Javascript] μ€νλ λ(Spread) μ°μ°μ (0) | 2024.07.26 |
[Javascript] ν΄λ‘μ (Closure) (3) | 2024.07.20 |
[Javascript] νΈμ΄μ€ν (Hoisting) (0) | 2024.07.19 |