π μ€ν 컨ν μ€νΈ(Execution Context)
μλ³μμ μ€μ½ν, μ½λ μ€ν μμλ₯Ό κ΄λ¦¬νκΈ° μν΄ κ΅¬νν λ΄λΆ λ©μ»€λμ¦
μλ³μμ μ€μ½νλ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μΌλ‘ κ΄λ¦¬νκ³ ,
μ½λ μ€ν μμλ μ€ν 컨ν μ€νΈ μ€νμΌλ‘ κ΄λ¦¬ν©λλ€.
μ€ν 컨ν μ€νΈ μ€ν
μ€ν 컨ν μ€νΈλ μ€ν μλ£κ΅¬μ‘°λ‘ κ΄λ¦¬λ©λλ€.
μ½λκ° μ€νλλ©΄ ν΄λΉ μ½λμ μ€ν 컨ν μ€νΈκ° μμ±λμ΄ μ€νμ pushλκ³ , μ€νμ΄ μ’ λ£λλ©΄ pop λ©λλ€.
λ μ컬 νκ²½
μλ³μμ μ€μ½νλ₯Ό κ΄λ¦¬νλ μλ£κ΅¬μ‘°μ λλ€.
νκ²½λ μ½λμ μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘°λ‘ κ΅¬μ±λμ΄ μμ΅λλ€.
νκ²½λ μ½λ
μ€μ½νμ λν μλ³μμ λ°μΈλ©λ κ°μ κ΄λ¦¬ν©λλ€.
μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘°
μμ μ€μ½νλ₯Ό κ°λ¦¬ν΅λλ€
μ€μ½ν μ²΄μΈ = μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘°λ₯Ό ν΅ν΄ λ¨λ°©ν₯ λ§ν¬λ 리μ€νΈλ‘ ꡬνλλ κ²
π‘ μ€ν 컨ν μ€νΈ μμ± κ³Όμ
let x = 1;
function first(a){
const x = 2;
const y = 3;
function second(b){
const z = 4;
console.log(a + b + x + y + z); // 39
}
second(10);
}
first(20);
π κ°λ¨νκ²
μ½λ μ€ν μ νκ° λ¨κ³
1. μ€ν 컨ν μ€νΈ μμ±
2. λ μ컬 νκ²½ μμ±(νκ²½λ μ½λ:μλ³μ λ±λ‘ κ΄λ¦¬, μΈλΆ λ μ컬 νκ²½ μ°Έμ‘°:μμ μ€μ½ν)
μ½λ μ€ν
1. μλ³μ κ²°μ (νμ¬ μ€νμ€μΈ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μμλΆν° μμ μ€μ½νλ‘ μμ°¨μ μΌλ‘ κ²μν¨)
π μμΈνκ²
- μ μ κ°μ²΄ μμ±
- μ μ μ½λ νκ°
- μ μ μ€ν 컨ν μ€νΈ μμ±
- μ μ λ μ컬 νκ²½ μμ±
- μ μ νκ²½ λ μ½λ μμ±
- κ°μ²΄ νκ²½ λ μ½λ μμ±
- μ μΈμ νκ²½ λ μ½λ μμ±
- this λ°μΈλ©
- [[GlobalThisValue]] λ΄λΆ μ¬λ‘―μ this λ°μΈλ©
- μΌλ°μ μΌλ‘ μ μ μ½λμμ thisλ μ μ κ°μ²΄λ₯Ό κ°λ¦¬ν΄
- μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ
- μ μ νκ²½ λ μ½λ μμ±
- μ μ μ½λ μ€ν
- μλ³μ κ²°μ
- νμ¬ μ€ν μ€μΈ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μμ κ²μ
- μλ³μλ₯Ό κ²μν μ μμΌλ©΄, μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘°κ° κ°λ¦¬ν€λ λ μ컬 νκ²½(μμ μ€μ½ν)μΌλ‘ μ΄λνμ¬ μλ³μ κ²μ
- μλ³μ κ²°μ
- first ν¨μ μ½λ νκ°
- ν¨μ μ€ν 컨ν μ€νΈ μμ±
- ν¨μ λ μ컬 νκ²½ μμ±
- ν¨μ νκ²½ λ μ½λ μμ±
- 맀κ°λ³μ, arguments κ°μ²΄, ν¨μ λ΄λΆμμ μ μΈν μ§μ λ³μμ μ€μ²© ν¨μ λ±λ‘νκ³ κ΄λ¦¬
- this λ°μΈλ©
- [[ThisValue]] λ΄λΆ μ¬λ‘―μ this λ°μΈλ©
- μΌλ° ν¨μλ‘ νΈμΆλμμΌλ―λ‘ thisλ μ μ κ°μ²΄λ₯Ό κ°λ¦¬ν΄
- μΈλΆ λ μ컬 νκ²½μ λν μ°Έμ‘° κ²°μ
- first ν¨μ μ μκ° νκ°λ μμ μ μ€ν μ€μΈ μ€ν 컨ν μ€νΈμ λ μ컬 νκ²½μ μ°Έμ‘°κ° ν λΉλλ€
- ν¨μκ° μ΄λμ νΈμΆλλμ§κ° μλλΌ μ΄λμμ μ μνλμ§μ λ°λΌ μμ μ€μ½νκ° κ²°μ λ¨
- ν¨μ νκ²½ λ μ½λ μμ±
- first ν¨μ μ½λ μ€ν
- second ν¨μ μ½λ νκ°
- first ν¨μ μ½λ νκ°μ κ°μ
- second ν¨μ μ½λ μ€ν
- second ν¨μ μ½λ μ€ν μ’
λ£
- μ€ν 컨ν μ€νΈ μ€νμμ μ κ±°
- μ€ν 컨ν μ€νΈ μ€νμμ μ κ±°λμμ΄λ κ°μ΄ λκ΅°κ°μ μν΄ μ°Έμ‘° λμλ€λ©΄ λ μ컬 νκ²½μ μλ©Έλμ§ μλλ€
- first ν¨μ μ½λ μ€ν μ’ λ£
- μ μ μ½λ μ€ν μ’ λ£
λΈλ‘ λ 벨 μ€μ½ν
βοΈλΈλ‘ μ€μ½νμ λν μ€ν 컨ν μ€νΈλ μμ±λμ§ μμ΅λλ€!
λΈλ‘ λ μ컬 νκ²½ μμ± O, μ€ν 컨ν μ€νΈ μμ± X
λΈλ‘ λ μ컬 νκ²½μ μΈλΆ λ μ컬 νκ²½ μ°Έμ‘°λ μ½λ λΈλ‘μ μμ±ν λ μ컬 νκ²½μ λλ€.
'π» νλ‘ νΈμλ > π JS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μλ°μ€ν¬λ¦½νΈ] λΉλκΈ° μ²λ¦¬μ μ΄λ²€νΈλ£¨ν (0) | 2023.12.27 |
---|---|
[μλ°μ€ν¬λ¦½νΈ] ν΄λ‘μ (1) | 2023.12.27 |
[μλ°μ€ν¬λ¦½νΈ] μ€μ½ν (0) | 2023.12.27 |
[μλ°μ€ν¬λ¦½νΈ] This (0) | 2023.12.27 |
λΈλΌμ°μ λ λλ§ μ리 (0) | 2023.12.27 |