μμ κ° (Primitive)
μλ°μ€ν¬λ¦½νΈμμ μμ κ°μ κ°μ²΄κ° μλκ³ , λ©μλλ₯Ό κ°μ§μ§ μλ λ°μ΄ν°λ‘ μλμ κ°μ΄ μ΄ 7κ°μ§μ μ’ λ₯κ° μ‘΄μ¬νλ€.
- string
- number
- bigint
- boolean
- undefined
- symbol
- null
μμ νμ μ κ°μ λ³κ²½ λΆκ°λ₯ν κ°μΌλ‘, λ³μμ μμ κ°μ μ¬ν λΉ(κ΅μ²΄)μ κ°λ₯νμ§λ§ μμ κ°μ μ§μ λ³νν μλ μλ€.
κ·Έλ κΈ°λλ¬Έμ μμ κ°μ λ°μ΄ν°μ μ λ’°μ±μ 보μ₯νλ€.
* μ¬κΈ°μ λ³μμ κ°μ νΌλνλ©΄ μλ¨! λ³κ²½ν μ μλ κ²μ λ³μκ° μλλΌ (μμ)κ°μ΄λ€! λ³μμ κ°μ μ¬ν λΉμ ν΅ν΄ λ³κ²½(κ΅μ²΄)ν μ μλ€.
var number = 3; // number λ³μμ μμ κ° 3μ ν λΉ.
number = 5; // number λ³μμ μμ κ° 5λ₯Ό μ¬ν λΉ.
// μ΄ λ κΈ°μ‘΄μ κ° 3μ λ©λͺ¨λ¦¬ μ΄λκ°μ λ¨μμκ³ , μλ‘μ΄ μμ κ°μΈ 5λ‘ λ³μ numberμ κ°μ΄ κ΅μ²΄ λλ€.
μμ κ°μ κ°μ§ λ³μμ μ¬ν λΉμ ν΄λ μμ κ°μ΄ λ°λλκ² μλλΌ κΈ°μ‘΄μ μμ κ°μ λ©λͺ¨λ¦¬μ λ¨μμκ³ , μλ‘κ² ν λΉλ μμ νμ μ κ°μΌλ‘ μ¬ν λΉ λκ³ λ³μμ ν λΉλ κΈ°μ‘΄ κ°μ κ°λ¦¬ν€λ λ©λͺ¨λ¦¬ μ£Όμκ° μλ μλ‘κ² ν λΉλ κ°μ κ°λ¦¬ν€λ λ©λͺ¨λ¦¬ μ£Όμλ‘ λ³κ²½λλ€. (μ΄λ λ©λͺ¨λ¦¬μ λ¨μμλ κΈ°μ‘΄μ μμ κ°μ μλ°μ€ν¬λ¦½νΈμ κ°λΉμ§μ»¬λ μ μ μν΄ μκΈ°λ μ νν μ μ μμ§λ§, μΆν μ 리λλ€.)
λ³μκ° μ°Έμ‘°νλ λ©λͺ¨λ¦¬ 곡κ°μ μ£Όμκ° λ³κ²½λ μ΄μ λ λ³μμ ν λΉλ μμ κ°μ΄ λ³κ²½ λΆκ°λ₯ν κ°μ΄κΈ° λλ¬Έμ΄λ€.
λ³μμ μμ κ°μ ν λΉν κ²½μ°, λ³μμλ μμ κ°μ΄ μ μ₯λ λ©λͺ¨λ¦¬μ μ£Όμκ° μ μ₯λλ€. λ©λͺ¨λ¦¬μ κ°μ΄ μ§μ μ μ₯λλ€.
var origin = 'μ€λ¦¬μ§λ'; // λ³μ originμ μμ κ°(λ¬Έμμ΄) 'μ€λ¦¬μ§λ' ν λΉ.
var copy = origin; // λ³μ copyμ λ³μ origin μ κ°μ΄ 볡μ¬λμ΄ ν λΉ.
origin = 'μ€λ¦¬μ§λμ΄μΌ.'; // λ³μ originμ μλ‘μ΄ μμ κ°(λ¬Έμμ΄) 'μ€λ¦¬μ§λμ΄μΌ.' λ₯Ό μ¬ν λΉ.
console.log(origin); // 'μ€λ¦¬μ§λμ΄μΌ.'
console.log(copy); // 'μ€λ¦¬μ§λ'
μμ κ°μ κ°μ§ λ³μ(origin)λ₯Ό λ€λ₯Έ λ³μ(copy)μ ν λΉνμ¬ origin λ³μκ° κ°λ μμ κ°μΈ 'μ€λ¦¬μ§λ'μ΄ λ³΅μ¬λμ΄ μ λ¬λλ€.
μ΄λ° κ²½μ°λ₯Ό κ°μ μν μ λ¬μ΄λΌκ³ νλ€. copyλ³μμλ originμ μμ κ° 'μ€λ¦¬μ§λ'μ΄ λ³΅μ¬λμ΄ origin λ³μμ μλ‘μ΄ κ°μ μ¬ν λΉ νλλΌλ copy λ³μμ μ μ₯λ μμ κ° 'μ€λ¦¬μ§λ'μ λ°λμ§ μλλ€.
κ°μ²΄ (Object)
μλ°μ€ν¬λ¦½νΈμμ κ°μ²΄λ μμ κ°μ μ μΈν λλ¨Έμ§ κ°(ν¨μ, λ°°μ΄, μ κ·ννμ λ±)μ λͺ¨λ κ°μ²΄μ΄λ€.
κ°μ²΄λ λ³κ²½ κ°λ₯ν κ°μΌλ‘, μλ³μμΈ λ³μμ ν λΉν λ μ°Έμ‘° κ°μ λ°μμ μ€μ κ°μ²΄μ μ κ·Όνλ€. (μμ κ°μ μ°Έμ‘° κ°μ΄ μλ κ°μ λ°μ.) λν μμ κ°μ λ³κ²½ λΆκ°λ₯νμ§λ§ κ°μ²΄λ λμ μΌλ‘ κ°μ μΆκ°νκ±°λ μμ κ° κ°λ₯νκΈ° λλ¬Έμ κ°μ λ³κ²½ν λ κΈ°μ‘΄μ λ©λͺ¨λ¦¬ μ£Όμ κ·Έλλ‘ μ¬μ©νλ€.
const objA = { name : 'Lee' };
μμ κ°μ΄ κ°μ²΄λ₯Ό objA λ³μμ ν λΉνλ©΄ objAμ μ μ₯λ λ©λͺ¨λ¦¬ μ£Όμλ₯Ό ν΅ν΄ λ©λͺ¨λ¦¬ 곡κ°μ μ κ·Όνλ©΄ μ°Έμ‘° κ°μ μ κ·Όν μμκ³ μ΄ μ°Έμ‘° κ°μ ν΅ν΄ μ€μ κ°μ²΄μ μ κ·Όνλ€.
const objA = { name : 'Lee' };
const objB = objA;
console.log(objB); // { name : 'Lee'};
console.log(objA === objB); // true
objB.name = 'Kim';
console.log(objA); // { name : 'Kim'}
objBλ objAκ° μ€μ κ°μ²΄μ μ κ·Όν λ νμν μ°Έμ‘° κ°μ΄ λ³΅μ¬ λμλ€. objBμ objAμ λ©λͺ¨λ¦¬ μ£Όμλ λ€λ₯΄μ§λ§ λμΌν μ°Έμ‘° κ°μ κ°κΈ° λλ¬Έμ λ κ°μ μλ³μκ° νλμ κ°μ²΄λ₯Ό 곡μ νκ³ μλ€.
μμ κ°κ³Ό κ°μ²΄μ μ°¨μ΄μ κ°λ¨ λΉκ΅
μμ κ° | κ°μ²΄ |
λ³κ²½ λΆκ°λ₯ν κ°(immutable value)μ΄λ€. | λ³κ²½ κ°λ₯ν κ°(mutable value)μ΄λ€. |
λ³μμ ν λΉνλ©΄ λ³μμλ μ€μ κ°μ΄ μ μ₯λλ€. | λ³μμ ν λΉνλ©΄ λ³μμλ μ°Έμ‘° κ°μ΄ μ μ₯λλ€. |
λ€λ₯Έ λ³μμ ν λΉνλ©΄ μμ κ°μ΄ 볡μ¬λμ΄ μ λ¬λλ€. π κ°μ μν μ λ¬ |
λ€λ₯Έ λ³μμ ν λΉνλ©΄ μλ³Έμ μ°Έμ‘° κ°μ΄ 볡μ¬λμ΄ μ λ¬λλ€. π μ°Έμ‘°μ μν μ λ¬ |
μΆμ²
- MDN
- λͺ¨λ μλ°μ€ν¬λ¦½νΈ Deep Dive - μ΄μ λͺ¨(μν€λΆμ€)
'JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ JavaScript ] var, let, const νν€μΉκΈ°. (0) | 2022.07.04 |
---|---|
[ JavaScript / Error ] μλ°μ€ν¬λ¦½νΈμ Error κ°μ²΄ (0) | 2022.06.22 |
[ Javascript ] μλ°μ€ν¬λ¦½νΈ String μ 리. (0) | 2022.05.03 |
[ JavaScript / μ°μ°μ ] μ°μ°μλ₯Ό μ΄μ©νμ¬ null λλ undefined μ²λ¦¬ λ°©λ². (0) | 2022.04.25 |
[ JavaScript / μ κ·ννμ ] μλ°μ€ν¬λ¦½νΈ μ κ·ννμ μ 리 <1> (0) | 2022.04.03 |