π‘ μ€ν 컨ν μ€νΈ (Execution Context)
ν¨μ μ€ν μ νμν 쑰건 / νκ²½ μ 보λ₯Ό λ΄μ κ°μ²΄μ λλ€.
VariableEnvironment
Β LexicalEnvironment
Β ThisBinding
μμ | μ€λͺ |
---|---|
VariableEnvironment | νμ¬μ μ€ν νκ²½κ³Ό κ΄λ ¨λ μλ³μλ₯Ό μμ§ν΄ μ€λ μ·μΌλ‘ λ§λλλ€. |
LexicalEnvironment | νμ¬μ μ€ν νκ²½κ³Ό κ΄λ ¨λ μλ³μμ λ΄κΈ΄ λ°μ΄ν°λ₯Ό μΆμ ν©λλ€. |
ThisBinding | ν¨μ νΈμΆ (Function.prototype.call) μ 맀κ°λ³μλ‘ λ겨λ°μ thisμ μ°Έμ‘°κ°μ λλ€. |
LexicalEnvironment | VariableEnvironment | |
---|---|---|
μ©λ | μλ³μμ λ΄κΈ΄ λ°μ΄ν°λ₯Ό μΆμ νλ μ©λ | μλ³μ μμ§ μ©λ |
κ° λ³ν | β μ€μκ° λ³ν λ°μ | β Never changes |
ꡬμ±μμ | environmentRecord : μ€ν 컨ν μ€νΈμ creation phaseμ νμ¬ μ»¨ν μ€νΈμ μλ³μ μ 보 μμ§ Hoistingμ΄ μΌμ΄λ©λλ€. outerEnvironmentReference : μΈλΆ νκ²½ μ°Έμ‘° μ€μ½ν 체μ΄λμ΄ μΌμ΄λ©λλ€. | environmentRecordμ outerEnvironmentRecordμ μ€λ μ· |
π ° Creation Phase (Compilation)
γλ³μ/ν¨μ μ μΈ, 맀κ°λ³μ, scope μ 보 μμ§γ
π ± Execution Phase
γκ° ν λΉ λ° κ΅¬λ¬Έ μ€νγ
π Functional EC
ν¨μ λ²μμ μ€ν 컨ν μ€νΈμ λλ€.
π Global EC
μ μ λ²μμ μ€ν 컨ν μ€νΈμ λλ€.
νλ‘κ·Έλ¨κ³Ό μλͺ μ£ΌκΈ°λ₯Ό κ°μ΄ν©λλ€.
𧩠Moudule EC
λͺ¨λ λ²μμ μ€ν 컨ν μ€νΈμ λλ€.
import λ λ μμ±λκ³ λͺ¨λ μ½λκ° λλλ©΄ μ’ λ£λ©λλ€.
π« Eval EC (Deperecated)
eval()
μ μ€ννμ λ μμ±λλ μ€ν 컨ν μ€νΈμ λλ€.
보μμ μ·¨μ½μ μ κ°κ³ μμ΄ κ±°μ μ¬μ©λμ§ μμ΅λλ€.