
Call by value ?
μλ³μκ° κ°κ³ μλ μ£Όμκ°μΌλ‘ κ°μ λ ν λΉλ λ°μ΄ν°κ° μ‘΄μ¬νλ©΄ call by value μ΄λ€.
κΈ°λ³Έν λ°μ΄ν° νμ μμ λ°μνλ€.
Call by reference ?
μλ³μκ° κ°κ³ μλ μ£Όμκ°μΌλ‘ κ°μ λ ν λΉλ λ°μ΄ν°κ° μ‘΄μ¬νλκ² μλλΌ
μ€μ λ°μ΄ν°κ° μλ μ£Όμκ°μ μ°Έμ‘°νκ³ μλ€λ©΄ 그건 call by reference μ΄λ€.
μ°Έμ‘°ν λ°μ΄ν° νμ μμ λ°μνλ€.
JS λ°μ΄ν° νμ μ μ’ λ₯
JSμμ λ°μ΄ν° νμ μ 2κ°μ§ μ’ λ₯λ‘ λλλ€κ³ νλ€.
κΈ°λ³Έν = λ¨μΌν κ°μ λ΄μ μ μλ νμ
1. Number
2. String
3. Boolean
4. Undefined
5. Null
6. (ES6) Symbol
...
μ°Έμ‘°ν = μ°κ΄λ λ°μ΄ν°λ₯Ό λ΄μ μ μλ νμ
μ°Έμ‘°νμλ μ΅μμ κ°μ²΄μ Object λΌλ κ°μ²΄κ° μκ³ , μ°Έμ‘°νμ λͺ¨λ μμλ Objectμ νμμμλ‘ μ‘νλ€.
νμμμμλ μλ 보기λ€μ΄ μλ€.
1. Array
2. Function
3. Date
4. Map
5. Set
6. Promise
7. RegExp
...
λ°μ΄ν° νμ μ λλλ κΈ°μ€ (μ€μ)
1. κ°μ μ μ₯ λ°©μ
2. λΆλ³μ± μ¬λΆ
λ°μ΄ν°μ 볡μ λ°©μ (κΈ°λ³Ένκ³Ό μ°Έμ‘°νμ μ°¨μ΄μ )
κΈ°λ³Έν : λ°μ΄ν°κ° λ΄κ²¨μλ λ©λͺ¨λ¦¬μ μ£Όμκ°μ λ°λ‘ 볡μ
μ°Έμ‘°ν : λ°μ΄ν°κ° λ΄κ²¨μλ λ©λͺ¨λ¦¬μ μ£Όμκ°μ λνλ΄λ μ£Όμκ°μ 볡μ
λΆλ³μ± μ¬λΆ
κΈ°λ³Έν : λΆλ³μ±μ κ°μ§λ€. = λΆλ³νλ€.
μ°Έμ‘°ν : λΆλ³μ±μ κ°μ§ μλλ€. = κ°λ³νλ€.
μ΄ν΄λμ§ μλ λΆλΆ
κΈ°λ³Ένμ λΆλ³νλ€λΌλ λΆλΆμ΄ μ΄ν΄κ° λμ§ μμ.
μμ
var a = 6;
a = 'abc';
console.log(a); // abc
var λΌλ μ μΈλ¬Έμ μ¬ν λΉ λ° μ¬μ μΈμ΄ κ°λ₯ν μ©μ΄μ΄λ€.
varλ₯Ό ν΅ν΄μ aλ₯Ό μ μΈνκ³ , μ μΈν aμ 6μ΄λΌλ κ°μ ν λΉν νμ λ°λ‘ λ€μμ€μμ "μ¬ν λΉ"μ ν΅ν΄μ aμ abcλ₯Ό μ¬ν λΉ νκ² λλ€λ©΄,
κ²°κ³Όμ μΌλ‘ console.log λ‘ μΆλ ₯κ°μ μ¬ν λΉλ abcκ° μ°νκ² λλ€.
μ²μ ν λΉν κ°μΈ 6μμ aκ° κ°μ§κ°μ abcλ‘ λ³νμΌλ !
"μ΄λ κ² λλ©΄, κ²°κ΅ κΈ°λ³Ένμ κ°μ λΆλ³ν κ²μ΄ μλλΌ λ³νκ²μ΄ μλλ" λΌλ μκ°μ΄ λ λ€.
νμ§λ§, νλ‘κ·Έλλ°μμ λΆλ³μ± μ¬λΆλ₯Ό νλ¨ν λλ "λ©λͺ¨λ¦¬ κ΄μ "μμ λ΄μΌ νλ€κ³ νλ€.
κ·Έλμ λ©λͺ¨λ¦¬μ λ°μ΄ν°κ° μ νν 무μμΈμ§ 곡λΆνκ³ μ νλ€.
λ°μ΄ν°μ λ©λͺ¨λ¦¬ ?
1. λΉνΈ ( bit )
- μ»΄ν¨ν°κ° μ΄ν΄ν μ μλ κ°μ₯ μμ λ¨μ = 0 κ³Ό 1
- λ©λͺ¨λ¦¬λ₯Ό ꡬμ±νκΈ° μν κ°μ₯ μμ μ‘°κ° = λΉνΈ
- νλμ λΉνΈμλ 0 λλ 1λ‘ κ΅¬μ±λμ΄ μλ€.
2. λ°μ΄νΈ ( byte )
- μ»΄ν¨ν°κ° λΉνΈμ‘°κ° νλνλλ₯Ό μ°Ύμκ°λ©° λ°μ΄ν°λ₯Ό λΉκ΅νκΈ°λ λΉν¨μ¨μ μ΄κΈ° λλ¬Έμ,
λΉνΈ 8κ°λ₯Ό λͺ¨μμ νλμ λ°μ΄ν°λ₯Ό λνλ΄λ μλ‘μ΄ λ¨μμΈ byteλ₯Ό λ§λ€μ΄λλ€.
3. λ©λͺ¨λ¦¬ ( memory )
- λͺ¨λ λ°μ΄ν°λ byte λ¨μμ μλ³μμΈ λ©λͺ¨λ¦¬ μ£Όμκ°μ ν΅ν΄μ ꡬλΆλλ€.
- λ°λΌμ, byte λ μλ‘μλ‘ κ΅¬λΆμ΄ κ°λ₯νλ€κ³ λ³Ό μ μλ€.
λ°μ΄ν°κ° λ©λͺ¨λ¦¬μ ν λΉλλ λ°©μ
1. κΈ°λ³Έν λ°μ΄ν°
μμ μ½λ
var kwon; // λ³μλͺ
μ μΈ
kwon = abc; // λ°μ΄ν° ν λΉ
< λ©λͺ¨λ¦¬ ν >
μλ³μ = λ³μλͺ
μμ
μλ³μ μμμλ kwon λΌλ μλ³μμ κ°μ λ¨Όμ μΈν
νλ€.
λ©λͺ¨λ¦¬νμ μΌμͺ½λΆν° μ~ νμν΄μ μ€λ©΄μ λΉκ³΅κ°μ μ°Ύκ³ , λΉκ³΅κ°μ μ°Ύμλ€λ©΄ κ±°κΈ°μ λ°μ΄ν°λ₯Ό μ μ₯νλ€.
μ£Όμ | ... | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
λ°μ΄ν° | ... | μ΄λ¦ : kwon λ°μ΄ν° : @5003 |
λ°μ΄ν° = λ³μ μμ
λ°μ΄ν° μμμλ abc μ΄λΌλ λ³μμ κ°μ μΈν
νλ€.
λ°μ΄ν° μμμμλ μΌμͺ½λΆν° μ ~ νμμ νλ©΄μ λΉκ³΅κ°μ μ°Ύκ³ , μ°Ύμλ€λ©΄ κ±°κΈ°μ λ°μ΄ν°λ₯Ό μ μ₯νλ€.
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | ... | ... | abc |
μμ λ©λͺ¨λ¦¬ν ν΄μ
1002λ² μ΄λΌλ μ£Όμκ°μλ kwonμ΄λΌλ λ³μλͺ μ΄ λ΄κ²¨μκ³ , λ°μ΄ν°μλ @5003λ²μ΄λΌλ μ£Όμκ°μ΄ λ΄κ²¨μμΌλ©°, ν΄λΉ μ£Όμκ°μ΄ κ°μ§λ λ°μ΄ν°λ₯Ό νμΈνκΈ° μν΄ λ°μ΄ν° μμμ μ΄ν΄λ³΄λ©΄,
λ°μ΄ν° μμμ 5003λ² μ΄λΌλ μ£Όμκ°μλ abcλΌλ μ°λ¦¬κ° ν λΉν λ°μ΄ν°κ°μ΄ λ΄κ²¨μλ€.
κ°μ λ°λ‘ ν λΉνμ§ μκ³ , μλ³μ μμ / λ°μ΄ν° μμ λλλ μ΄μ !!
1. μμ λ‘μ΄ λ°μ΄ν° λ³νμ μν΄μ
λ΄κ° μμ²λΌ kwonμ΄λΌλ μλ³μλ₯Ό μ μΈν΄μ 1002λ²μ μ£Όμκ°μ λ°μ΄ν°κ° λ€μ΄κ°κ³ ,
1003λ²κ³Ό 1004λ²λ λκ°μ΄ μλ‘μ΄ μλ³μ λ°μ΄ν°κ° λ€μ΄μ μλ μνμμ,
μ£Όμ | ... | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
λ°μ΄ν° | ... | μ΄λ¦ : kwon λ°μ΄ν° : abc |
....... | ....... |
μ΄λ κ² λ°λ‘ abcλ₯Ό ν λΉνλ€κ³ μ³€μ λ, 1002λ²μ ν λΉλ abcλΌλ λ°μ΄ν°λ₯Ό κΈμμκ° 100μΈ λ©λͺ¨λ¦¬κ°μ΄ λ ν° λ°μ΄ν°λ‘ λ³κ²½νλ€λ©΄ ?
κΈμμκ° 100μΈ λμ©λμ λ°μ΄ν°λ₯Ό λ΄μ μ μμλ§νΌ
1002λ² λΏλ§ μλλΌ κ·Έ μ΄μμ μ£Όμκ° μ리κΉμ§ μ°¨μ§ν΄μΌ λ³κ²½λ ν° λ°μ΄ν°λ₯Ό λ€ λ΄μ μ μκΈ° λλ¬Έμ
1003λ²κ³Ό 1004λ²μ μ μ₯λ λ°μ΄ν°λ€λ μ λΆ λ€ λ€λ‘ λͺ μΉΈμ© λ°λ €μΌ νλ€.
μΈμ κΉμ§ ?
1002λ²μ μ¬ν λΉλ λ°μ΄ν°κ° λ©λͺ¨λ¦¬μ μΆ©λΆν λ΄κΈΈ μ μλ μ£Όμκ°κΉμ§ !
κ·Έλ κΈ° λλ¬Έμ λΉν¨μ¨ μ μ΄λ€.
κ·Έλμ μλ³μ μμκ³Ό λ°μ΄ν° μμμ λ°λ‘ λλμ΄μ λ³λ 곡κ°μ λ°μ΄ν°λ₯Ό νλ³΄ν΄ λκ³ ,
μλ³μ μμμ λ°μ΄ν°μλ λ°μ΄ν° μμμ μ£Όμκ°μ κ°μ Έμ¬ μ μκ² νλ κ²μ΄λ€.
2. λ©λͺ¨λ¦¬λ₯Ό ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄μ
μμλμ΄μΌ νλ λΆλΆ νκ°μ§!
λΉκ΅μ μλ³μ μμμ΄ μλͺ¨νλ λ©λͺ¨λ¦¬ μμ κ±°μ νμ λ°μ΄ν° μμμ λ©λͺ¨λ¦¬ μλ³΄λ€ μ λ€ κ° Base !
λ§μ½, 1λ§κ°μ μλ³μλ₯Ό μμ±νλλ°, κ·Έ μμ±ν μλ³μμ ν λΉλ λ³μκ° κ°μ κ°μ΄λΌλ©΄ ?
κ·Έ κ°μ 1μ΄λΌκ³ κ°μ νμ λ,
JSμμλ μ μκ° κ°μ§λ λ©λͺ¨λ¦¬ μμ 8Byteμ΄κΈ° λλ¬Έμ 1λ§κ°μ κ°μ μ λΆ μλ‘μ΄ μ£Όμκ°μ μ§μ ν λΉνλ€λ©΄ μ°¨μ§νλ λ©λͺ¨λ¦¬ μ©λμ 8λ§λ°μ΄νΈκ° λλ€.
νμ§λ§, μλ³μμ μμμλ 1λ§κ°μ μλ³μλ₯Ό κ° μ£Όμκ°μ ν λΉνκ³ ,
1μ΄λΌλ λ³μλ₯Ό λ°μ΄ν° μμμμ 1κ°μ μ£Όμκ°μ ν λΉν νμ, κ·Έ μ£Όμκ°μ μλ³μμ μμμ λ°μ΄ν° λΆλΆμ λμ΄μ μ΄λ€λ©΄?
λ°μ΄ν° μμμμλ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ 1μ΄λΌλ κ°μ νλμ μ£Όμκ°μ ν λΉνλλ° μ°μΈ 8λ°μ΄νΈκ° μ λΆμ΄κ³ ,
μλ³μ μμμμλ 1λ§κ°μ μλ³μλ₯Ό ν λΉνμ§λ§, λ°μ΄ν° μμ보λ€λ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ κΈ° λλ¬Έμ μλ‘ 1κ°λΉ 2λ°μ΄νΈλ‘ μ‘μΌλ©΄,
μ§μ ν λΉ : 8λ§ λ°μ΄νΈ = μλ³μμ λ°μ΄ν° λ°λ‘ κ° μμμ ν λΉ : 2λ§ 8λ°μ΄νΈ μ΄κΈ° λλ¬Έμ,
λ©λͺ¨λ¦¬ μ¬μ©λ©΄μμ ν¨μ¨μ μΌλ‘ μ¬μ©ν μ μκΈ° λλ¬Έμ΄λ€.
μμ κ°μ 2κ°μ§ μ΄μ λ‘ ν λΉλ λ°μ΄ν°λ₯Ό μλ³μ μμμ μ§μ ν λΉνμ§ μκ³ ,
λ°μ΄ν° μμμ μ μ₯ν λ€ ν΄λΉ μ£Όμκ°μ κ°μ Έμμ μ¬μ©νλ λ°©μμΌλ‘ μ²λ¦¬νλ κ²μ΄λ€.
μμ μ΄ν΄λμ§ μλ λΆλΆ ν΄κ²°
μμμ μ΄ν΄κ° λμ§ μμλ λΆλ³μ±μ νμΈνλ κ³Όμ μ μμ μ½λλ₯Ό κ·Έλλ‘ κ°μ Έμλ€.
1. var a = 6;
2. a = 'abc';
3. console.log(a); // abc
< 1λ² μ€ μ½λ λ©λͺ¨λ¦¬ν >
μ£Όμ | ... | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
λ°μ΄ν° | ... | μ΄λ¦ : a λ°μ΄ν° : @5001 |
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 6 |
< 2λ² μ€ μ½λ λ©λͺ¨λ¦¬ν >
μ£Όμ | ... | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 |
λ°μ΄ν° | ... | μ΄λ¦ : a λ°μ΄ν° : @5002 |
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 6 | abc |
λΆλ³μ±μ νλ¨νκΈ° μν΄μλ λ©λͺ¨λ¦¬ κ΄μ μμ λ΄μΌ νλ€ νμκ³ , λΆλ³ν¨κ³Ό λΆλ³νμ§ μμμ λ©λͺ¨λ¦¬κ΄μ μμ μ μνλ λ°λ λ€μκ³Ό κ°λ€.
λΆλ³νλ€ = λ°μ΄ν° μμ λ©λͺ¨λ¦¬λ₯Ό λ³κ²½ν μ μλ€.
λΆλ³νμ§ μλ€ = λ°μ΄ν° μμ λ©λͺ¨λ¦¬λ₯Ό λ³κ²½ν μ μλ€.
λ°λΌμ, λ°μ΄ν° μμμ 5001λ²μ ν λΉλ 6μ κ°μ΄ abcλ‘ λ³κ²½νκ²μ΄ μλ, μλ‘μ΄ μ£Όμκ°μ abcλ₯Ό ν λΉμμΌ°κ³ , μλ³μ μμμμλ κ·Έ μ£Όμκ°μ κ°μ Έμ¨ κ² μ΄κΈ° λλ¬Έμ, 6μ΄ κ°μ§ λ©λͺ¨λ¦¬λ λ³κ²½λμ§ μμ κ²μ΄λ€.
κΉ¨μ μ΅λ μ§μ
μ΄μ μ¬ν λΉμΌλ‘ λ μ΄μ μ¬μ©μ΄ λμ§ μμ 5001λ²μ μ£Όμκ°μ΄ κ°μ§λ 6μ΄λΌλ λ°μ΄ν°λ JSμμ κ°λΉμ§μ»¬λ ν°λΌλ μΉκ΅¬κ° μλλ°,
μ΄λ° μΈλͺ¨κ° μμ΄μ§ μ½λλ€μ κ°λΉμ§μ»¬λ ν° μΉκ΅¬λ€μ΄ μκ±°λ₯Ό νκ³ λ€λλ€κ³ ν©λλ€.
κ·Έλ κ² JS λ΄μμ λ©λͺ¨λ¦¬λ₯Ό κ΄λ¦¬ν΄ λκ°λ€κ³ ν©λλ€.
λ°μ΄ν°κ° λ©λͺ¨λ¦¬μ ν λΉλλ λ°©μ
2. μ°Έμ‘°ν λ°μ΄ν°
μμ μ½λ
var obj1 = {
a: 1,
b: 'gd',
};
< λ©λͺ¨λ¦¬ ν >
μλ³μ = λ³μλͺ
μμ
κΈ°λ³Έν λ°μ΄ν°μ λμΌνκ² μ΄λ£¨μ΄ μ§λ€.
μ£Όμ | ... | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
λ°μ΄ν° | ... | μ΄λ¦ : obj1 λ°μ΄ν° : @7101 ~ @7102 |
λ°μ΄ν° = λ³μ μμ
κΈ°λ³Έν λ°μ΄ν°μ λμΌνκ² μ΄λ£¨μ΄μ§λ€.
λ€λ§ μ°Έκ³ ν λΆλΆμ μ°Έμ‘°ν λ°μ΄ν°μ κ°μ²΄ ν€κ°μ λ€λ₯Έ λ³λ 곡κ°μ μ μ₯λκ³ ,
λͺ¨λ λ°μ΄ν°λ μ΄ κ³³ !! λ°μ΄ν° μμμ μ μ₯λλ€λ κ²μ κΈ°μ΅νμ !!
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 1 | "gd" |
(μ€μ) λ°μ΄ν° μμ λ΄μ κ°μ²΄ λ³λ 곡κ°
μ°Έμ‘°ν λ°μ΄ν°κ° μ μ₯λ μμλ μ΄λ κ² μ°Έμ‘°ν λ°μ΄ν°μ ν€κ°λ€μ΄ λ³λλ‘ μ μ₯λ μ μλ 곡κ°μ μ μ₯νκ² λλ€.
λΉ μ£Όμκ°μ κ°μ²΄μ keyκ°μ΄ λ€μ΄κ°κ³ , ν΄λΉ key κ°μ΄ κ°μ§λ valueκ°μ λνλ΄λ μ£Όμκ°μ΄ κ°μ΄ λ€μ΄κ°λ€.
μ£Όμ | ... | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 | 7007 | 7008 |
λ°μ΄ν° | ... | μ΄λ¦ : a λ°μ΄ν° : @5001 |
μ΄λ¦ : b λ°μ΄ν° : @5002 |
μ°Έμ‘°ν λ°μ΄ν°μ κ°λ³μ±
κ°λ³μ±μ νμΈνκΈ° μν μμ μ½λ
var obj1 = {
a: 1,
b: 'gd',
};
obj1.a = 23;
console.log(obj1); // μΆλ ₯ κ° : { a: 23, b: 'gd' }
μ μ½λλ₯Ό κΈ°λ°μΌλ‘ λ©λͺ¨λ¦¬ νλ₯Ό νμΈν΄λ³΄μμ λ,
< λ©λͺ¨λ¦¬ ν >
μλ³μ μμμ λ³κ²½λλ λΆλΆμ΄ μμ΅λλ€.
μ£Όμ | ... | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
λ°μ΄ν° | ... | μ΄λ¦ : obj1 λ°μ΄ν° : @7101 ~ @7102 |
μ΄ μλλ‘λ μ λΆ λ°μ΄ν° μμμΈλ°, μ¬κΈ°μ μ°Έμ‘°νμ κ°λ³μ±μ΄ λλ¬λ©λλ€.
1. λ°μ΄ν° μμμ μ¬ν λΉν 23μ΄λΌλ κ°μ΄ λΉ λ©λͺ¨λ¦¬μ ν λΉμ΄ λμ΄μΌ νꡬμ. // λΉ λ©λͺ¨λ¦¬μΈ 5003λ²μ ν λΉ
2. λ°μ΄ν° μμλ΄μ κ°μ²΄ λ³λ 곡κ°μμ 7001μ μ£Όμκ°μ΄ κ°μ Έμ€λ λ°μ΄ν° μ£Όμκ° λ³κ²½λμ΄μΌ ν©λλ€.
μλλ©΄ ? aμ κ°μ΄ 1μ΄ μλ 23μΌλ‘ μ¬ ν λΉ νκΈ° λλ¬Έμ, aλΌλ μ΄λ¦μ κ°κ³ μλ 7001 μ£Όμμμ λ°μ΄ν° μ£Όμλ 1μΈκ°μΈ 5001μ κ°μ Έμ€λκ² μλλΌ μλ‘ ν λΉλ°μ 23μ΄ ν λΉλ μ£Όμκ°μ κ°μ ΈμμΌ νκΈ° λλ¬Έμ
λλ€.
λ°μ΄ν° μμμ λ³κ²½λ κ²°κ³Όλ λ€μ νμ κ°μ΅λλ€.
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 1 | "gd" | 23 |
μ£Όμ | ... | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 | 7007 | 7008 |
λ°μ΄ν° | ... | μ΄λ¦ : a λ°μ΄ν° : @5003 |
μ΄λ¦ : b λ°μ΄ν° : @5002 |
λ°λΌμ, λ°μ΄ν° μμμ λ©λͺ¨λ¦¬κ° λ³κ²½λλ μλλλ‘ λΆλ³μ±μ λλκΈ° λλ¬Έμ, λ°μ΄ν° μμμ λ©λͺ¨λ¦¬κ° λ³κ²½λμμΌλ―λ‘,
μ°Έμ‘°ν λ°μ΄ν°λ λΆλ³νμ§ μλ€ === κ°λ³νλ€.
μ€μ²©κ°μ²΄μ λ°μ΄ν°κ° ν λΉλλ κ³Όμ
κ·ΈλΌ μ΄λ²μ κ°μ²΄μμ κ°μ²΄κ° λ©λͺ¨λ¦¬μ ν λΉλλ κ³Όμ μ μ΄λ»κ² λλμ§ μ΄ν΄λ³΄μ.
μμ μ€λͺ
μ κΈ°λ°μΌλ‘ νΌμ ν
μ€νΈλ₯Ό μ§νν΄λ³΄μλλ°, νλ Έλ€. ^^
μ€μ²©κ°μ²΄μ λ°μ΄ν° ν λΉκ³Όμ μ λ€μκ³Ό κ°λ€.
μ€μ²©κ°μ²΄ μμ μ½λ
var obj1 = {
a: 3,
arr: [1, 2, 3],
};
< λ©λͺ¨λ¦¬ ν >
ν ꡬμ±μ λ€μκ³Ό κ°λ€.
νμ νλ μλ³μ μμ / λ°μ΄ν° μμ μΌλ‘ ꡬμ±λμ΄ μμΌλ©°, λ°μ΄ν° μμμμλ μ°Έμ‘°ν λ°μ΄ν°μΌ κ²½μ° κ° κ°μ²΄κ° λνλ΄λ λ³λ 곡κ°μ΄ λ°λ‘ μλ€κ³ μκ°νμ !!
μλ³μ μμ
μ£Όμ | ... | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
λ°μ΄ν° | ... | μ΄λ¦ : obj1 λ°μ΄ν° : @7001 ~ @7002 |
λ°μ΄ν° μμ
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 3 | 4 | 5 |
obj1μ λ³λ 곡κ°
μ£Όμ | ... | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 | 7007 | 7008 |
λ°μ΄ν° | ... | μ΄λ¦ : a λ°μ΄ν° : @5001 |
μ΄λ¦ : arr λ°μ΄ν° : @8001 ~ @8003 |
arrμ λ³λ곡κ°
κ°μ²΄μ κ²½μ° keyκ°μ λ°λΌ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ€λ©΄, λ°°μ΄μ κ²½μ°μλ μΈλ±μ€ κ°μΌλ‘ κ΄λ¦¬λλ€.
μ£Όμ | ... | 8001 | 8002 | 8003 | 8004 | 8005 | 8006 | 8007 | 8008 |
λ°μ΄ν° | ... | i = 0 λ°μ΄ν° : @5001 |
i = 1 λ°μ΄ν° : @5002 |
i = 2 λ°μ΄ν° : @5003 |
볡μ¬ν λ³μ λ©λͺ¨λ¦¬ ν λΉ κ³Όμ
μμ μ½λ
var a = 10;
var obj = { b: 3, c: 'hi' };
// λ€λ₯Έ λ³μλ‘ λ³΅μ¬
var d = a;
var obj1 = obj;
< λ©λͺ¨λ¦¬ ν >
νΈμλ₯Ό μν΄ μ΄μ μλ³μ μμκ³Ό λ³λ곡κ°μ μ΄λ¦ μλ΅ν¨.
μλ³μ μμ
μ£Όμ | ... | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
λ°μ΄ν° | ... | a / @5001 |
obj / @7001 ~ @7002 |
d / @5001 |
obj1 / @7001 ~ @7002 |
λ°μ΄ν° μμ
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 10 | 3 | "hi" |
obj λ³λ 곡κ°
μ£Όμ | ... | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 | 7007 | 7008 |
λ°μ΄ν° | ... | b / @5002 |
c / @5003 |
볡μ¬ν λ³μ κ°μ λ³κ²½ν λ !!
μμ λμΌν μ½λμμ 볡μ¬ν κ°λ§ λ³κ²½ν κ²μ΄λ€.
μμ μ½λ
var a = 10;
var obj = { b: 3, c: 'hi' };
// λ³μ 볡μ¬
var d = a;
var obj1 = obj;
// 볡μ¬ν κ° λ³κ²½
d = 13;
obj1.b = 9;
< λ©λͺ¨λ¦¬ ν >
μλ³μ μμ
μ£Όμ | ... | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 |
λ°μ΄ν° | ... | a / @5001 |
obj / @7001 ~ @7002 |
d / @5004 |
obj1 / @7001 ~ @7002 |
λ°μ΄ν° μμ
μ£Όμ | ... | 5001 | 5002 | 5003 | 5004 | 5005 | 5006 | 5007 | 5008 |
λ°μ΄ν° | ... | 10 | 3 | "hi" | 13 | 9 |
obj λ³λ 곡κ°
μ£Όμ | ... | 7001 | 7002 | 7003 | 7004 | 7005 | 7006 | 7007 | 7008 |
λ°μ΄ν° | ... | b / @5005 |
c / @5003 |
μ€μβοΈ
μ¬κΈ°μ μ€μν μ μ΄ νλ μλ€.
// 첫 μ μΈ λΉμ
var a = 10;
var obj = { b: 3, c: 'hi' };
// λ³μ 볡μ¬
var d = a;
var obj1 = obj;
// 볡μ¬ν λ³μμ κ° μ¬ν λΉ
d = 13;
obj1.b = 9;
// μΆλ ₯ κ° :
console.log(a, d); // 10 , 13
console.log(obj, obj1); // { b: 9, c: 'hi' } { b: 9, c: 'hi' }
< κΈ°λ³Έν >
10μ΄λΌλ λ°μ΄ν°κ° ν λΉλ aλΌλ μλ³μλ₯Ό κ°μ Έμ dμ 볡μ¬νκ³ , 볡μ¬ν dμ κ°μ μ¬ν λΉμ ν΅ν΄ 13μΌλ‘ λ³κ²½ν΄μ£Όμλ€.
λ°λΌμ μ°λ¦¬κ° μνλ κ°μΈ a = 10 / d = 13μ΄ μ μμ μΌλ‘ μΆλ ₯λμλ€.
βοΈ < μ°Έμ‘°ν > βοΈ
b : 3 / c : "hi" pair λ₯Ό μ΄λ£¨λ obj λ₯Ό κ°μ Έμ obj1λ‘ λ³΅μ¬νκ³ , 볡μ¬ν obj1μ bμ μμκ°λ§ 9λΌλ λ°μ΄ν°λ₯Ό μ¬ν λΉ ν΄μ£Όμλ€.
λ°λΌμ μ°λ¦¬κ° μνκ°μ obj = { b : 3 , c : "hi" } / obj1 = { b : 9 , c : "hi" } μ΄κ²μ΄λ€.
νμ§λ§, μΆλ ₯κ°μ νμΈν΄λ³΄λ©΄ obj = { b: 9, c: 'hi' } / obj1 = { b: 9, c: 'hi' } λ‘ obj1μ b μμλ§ λ³κ²½νμμλ λΆκ΅¬νκ³ objμ bμμκΉμ§ λ³κ²½λ κ²μ νμΈν μ μλ€.
μ΄λ μμ λ©λͺ¨λ¦¬νλ₯Ό νμΈν΄λ³΄λ©΄ obj μ obj1μ΄ μλ‘ κ°μ λ°μ΄ν°μ μ£Όμκ°μ λ°λΌλ³΄κ³ μλ€λ κ±Έ μ μ μκ³ , obj 1μ b μ μμκ°μ λ³κ²½νλ©΄μ obj λ³λ곡κ°μ dμ λ°μ΄ν° μ£Όμκ°μ΄ λ³κ²½λμκΈ° λλ¬Έμ μ΄λ° μνμ§ μμ μ€λ₯κ°μ λ§λκ² λ κ²μ΄λ€.
μ μ°Έμ‘°νμ μ€λ₯ ν΄κ²° λ°©λ²
μ€λ₯ ν΄κ²° μ½λ
var a = 10;
var obj = { b: 3, c: 'hi' };
var d = a;
var obj1 = { b: 12, c: 'hello' }; // λ³μλ₯Ό 볡μ¬ν κ²μ΄ μλ, μλ‘μ΄ κ°μ²΄λ₯Ό ν λΉν΄μ£Όμλ€.
d = 13;
obj1.b = 9;
console.log(a, d); // 10, 13
console.log(obj, obj1); // { b: 3, c: 'hi' } { b: 9, c: 'hello' }
μ ν΄κ²°λ°©λ²μ μΆλ ₯ κ°μ΄ μ°λ¦¬κ° μνλ κ°μΌλ‘ λμ€λ μ΄μ
4λ² μ€μμ λ³μ 볡μ¬λ₯Ό μ§νν λ κΈ°μ‘΄ objλΌλ λ³μλ₯Ό 볡μ¬ν κ²μ΄ μλ μλ‘μ΄ κ°μ²΄λ₯Ό ν λΉνλ€.
κ·Έλ κ² λλ©΄μ obj1λ μλ‘μ΄ obj1λ§μ λ³λ곡κ°μ΄ λ°μ΄ν° μμλ΄μ κ°μ§κ² λμκ³ , κ·Έ μμμ λ°μ΄ν° μ£Όμλ₯Ό κ°μ Έμ€λ©΄μ, ν΄λΉ λ°μ΄ν° μ£Όμλ₯Ό κ°κ³ μλ obj1μ μμμ μ£Όμκ°μ obj1μ΄λΌλ μλ³μκ° κ°μ§κ² λμμΌλ, μμ μ€λ₯κ° ν΄κ²°μ΄ λ κ²μ΄λ€.
λλ μ
call by value μ call by reference μ λν΄μ μκ³ μΆμ΄μ λ°μ΄ν° νμ λΆν° κΈ°λ³Έν μ°Έμ‘°ν, λλλ κΈ°μ€, κ·Έλ¦¬κ³ λ©λͺ¨λ¦¬μ λ°μ΄ν°κ° ν λΉλλ λ°©μκ³Ό λ³΅μ¬ ν κ°μ λ³κ²½νμ λ μΌμ΄λλ μΌλ€κΉμ§ κΈ°λ³Ένκ³Ό μ°Έμ‘°νμ μ°¨μ΄μ λν΄μ νλ£¨μ’ μΌ μ΄ ν¬μ€νΈλ₯Ό μ 리νλ€.
μ¬λ¬κ°μ§ μμ²νκ³ μ°Ύμ보면μ 'μ κ·Έλλ μ΄μ λ°μ΄ν°κ° λ©λͺ¨λ¦¬μ μ μ₯λλ λ°©μκ³Ό κΈ°λ³Ένκ³Ό μ°Έμ‘°νμ μ°¨μ΄λ νμ€νκ² κΉ¨μ°μΉκ³ λ€μ λ¨κ³λ‘ λμ΄κ°λ κ² κ°μμ λ무λ무λ무 ν볡νλ€'
μ΄λ° μ€λ₯κ° μκΈ΄λ€λκ²μ΄ μ°Έ μ κΈ°νλ€. μ΄ λΆλΆμ λν΄μ μμΌλ‘ κ²ͺμ μ΄μκ° λ¬΄μλ€μ΄ μλμ§λ μ°¬μ°¬ν μ΄ν΄λ΄μΌκ² λ€.
#λ°μ΄ν°_νμ #κΈ°λ³Έν #μ°Έμ‘°ν #call_by_value #call_by_reference #λ³΅μ¬ #μ΄μ #λ°μ΄ν° #λ©λͺ¨λ¦¬
'JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JS] : this binding (0) | 2023.07.28 |
---|---|
[JS] : μμ λ³΅μ¬ / κΉμ λ³΅μ¬ (0) | 2023.07.27 |
[JS] : μ‘°κ±΄λΆ μ€ν / μΌν μ°μ°μμ λ¨μΆνκ° (0) | 2023.07.26 |
[JS] : Switch (0) | 2023.07.26 |
[JS] : Null / Undefined (0) | 2023.07.24 |