D+09
- Java Script κ°λ κ³Ό κ°λ°μ λꡬ μ¬μ© μ€λΉ -
(Scope, Closure, κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°)
Scope
•λ³μμ μ κ·Όν μ μλ μ ν¨ λ²μλ‘ μ΄λμλΆν° μ΄λκΉμ§ μ ν¨ν μ§λ₯Ό νλ¨νλ λ²μλΌ λ³Ό μ μλ€.
Global Scope μ Local Scope
•Global Scope
μ μμ μ μΈλμ΄ μκΈ° λλ¬Έμ μ΄λ κ³³μ΄λ ν΄λΉ λ³μμ μ κ·Όμ΄ κ°λ₯νλ€.
• Local Scope
ν΄λΉ μ§μμμλ§ μ κ·Όμ΄ κ°λ₯νλ―λ‘ ν΄λΉ μ§μ λ°μ λ²μ΄λ μ μλ€.
μ§μ λ³μλ ν¨μ λ΄μμ μ μ λ³μλ³΄λ€ λ λμ μ°μ μμλ₯Ό κ°μ§λ€.
Function Scope μ Block Scope
•Function Scope
ν¨μμ½λμ λΈλ‘ λ΄μμ μ μΈλ λ³μλ ν΄λΉ ν¨μ μ½λ λΈλ‘ μ½λμμλ§ μ ν¨νκ³ μΈλΆμμλ μ ν¨νμ§ μλ€.
• Block Scope
μ€κ΄νΈλ‘ ꡬλΆλλ λΈλ‘ λ²μ
Scope νΉμ§
• μ§μ μ€μ½νμμ λ°κΉ₯ λ³μμ ν¨μλ₯Ό μ κ·Όνλ κ²μ΄ κ°λ₯νμ§λ§ λ°κΉ₯μͺ½μμ μμͺ½ λ³μ ν¨μλ₯Ό μ κ·Όνλ κ²μ λΆκ°λ₯νλ€.
• ν¨μκ° μ μΈλλ λμμ μμ λ§μ μ€μ½νλ₯Ό κ°μ§κ² λλ€.
• ν¨μμμ ν¨μλ₯Ό μ§μ΄λ£μ μ μκΈ° λλ¬Έμ μ€μ²©μ΄ κ°λ₯νλ€.
let / const / var
let | const | var | |
μ ν¨λ²μ | Block Scope | Block Scope | Function Scope |
κ° μ¬μ μ | κ°λ₯ | λΆκ°λ₯ | κ°λ₯ |
μ¬μ μΈ | λΆκ°λ₯ | λΆκ°λ₯ | κ°λ₯ (λ¨, μλ¬λ°μ κ°λ₯μ±) |
μ μλ²μλ₯Ό λννλ κ°μ²΄ Window
• κΈλ‘λ² μ€μ½νμμ μ μΈλ ν¨μμ varν€μλλ₯Ό μ¬μ©ν΄ μ μΈλ λ³μλ window κ°μ²΄μ μ°κ²°μ΄ λλ€.
• κ°μ²΄ μ μΈμΌλ‘ μ€λ³΅λ μ 보λ€λ‘ μΆνμ μμ μ μΆ©λλ‘ μΈν΄ μνλ λ°©ν₯μΌλ‘ λμ€μ§ μμ μ μμΌλ κ°κΈμ μ μ λ²μμ λ무 λ§μ μ μΈμ νμ§ μλλ‘ ν΄μΌ νλ€.
μ μΈ μμ΄ μ΄κΈ°νλ μ μ λ³μ?
μ μΈ ν€μλ (let, const, var) μμ΄ λ³μλ₯Ό κ°κΈμ μ΄κΈ°ννμ§ μλλ‘ νλ€.
μλνλ©΄ μ΄λ΄ κ²½μ° λ³μκ° μ μ λ³μλ‘ μ·¨κΈλμ΄ λ²λ¦¬κΈ° λλ¬Έμ λ§μ°¬κ°μ§λ‘ μΆνμ μλ¬κ° λ°μν μ μλ€.
μ΄λ₯Ό μλ°©νκΈ° μν΄ λ¬Έμμ΄λ‘ 'use strict'μ μ λ ₯ν΄ μ£Όλ©΄ μ€νΈλ¦νΈ λͺ¨λλ₯Ό μ¬μ©νκ² λλ©°
λ³μλ₯Ό ν€μλ μ μΈ μμ΄ μ΄κΈ°νν λ΄μ©μ΄ μμ μμ μλ¬λ₯Ό λ°μμμΌ μ€λ€.
Closure
• μΈλΆ ν¨μμ λ³μμ μ κ·Όν μ μλ λ΄λΆ ν¨μ
컀λ§
•ν¨μ νλκ° nκ°μ μΈμλ₯Ό λ°λ λμ μ nκ°μ ν¨μλ₯Ό λ§λ€μ΄ κ°κ° μΈμλ₯Ό λ°κ² νλ λ°©λ²μΌλ‘ μΈλΆ ν¨μμ λ³μκ° μ μ₯λμ΄ λ§μΉ ν νλ¦Ώ ν¨μμ κ°μ΄ μ¬μ© κ°λ₯νλ€.
ν΄λ‘μ λͺ¨λ ν¨ν΄
•λ³μλ₯Ό μ€μ½ν μμͺ½μ κ°λμ΄ ν¨μ λ°μΌλ‘ λ ΈμΆμν€μ§ μλ λ°©λ²
κ°μ²΄μ§ν₯ νλ‘κ·Έλλ°
• νλμ λͺ¨λΈμ΄ λλ μ²μ¬μ§(blueprint)μ λ§λ€κ³ , κ·Έ μ²μ¬μ§μ λ°νμΌλ‘ ν κ°μ²΄(object)λ₯Ό λ§λλ νλ‘κ·Έλλ° ν¨ν΄
• μλ°μ€ν¬λ¦½νΈμμ μ²μ¬μ§(blueprint)μ ν΄λμ€(Class)λΌ νκ³ , κ°μ²΄(object)λ₯Ό μΈμ€ν΄μ€(instance)λΌκ³ νλ€.
ν΄λμ€ μ μΈ
•ν¨μ νλκ° nκ°μ μΈμλ₯Ό λ°λ λμ μ nκ°μ ν¨μλ₯Ό λ§λ€μ΄ κ°κ° μΈμλ₯Ό λ°κ² νλ λ°©λ²μΌλ‘ μΈλΆ ν¨μμ λ³μκ° μ μ₯λμ΄ λ§μΉ ν νλ¦Ώ ν¨μμ κ°μ΄ μ¬μ© κ°λ₯νλ€.
μΈμ€ν΄μ€ λ§λ€κΈ°
• new ν€μλλ₯Ό ν΅ν΄ ν΄λμ€μ μΈμ€ν΄μ€λ₯Ό λ§λ€μ΄ λΌ μ μλ€.
• κ°κ°μ μΈμ€ν΄μ€λ ν΄λμ€μ κ³ μ ν μμ±κ³Ό λ©μλλ₯Ό κ°μ§λ€.
μμ±κ³Ό λ©μλ
• μμ± : μ νμΌλ‘ λ°μ§μλ©΄ μμ±μ μ νμ λΈλλ, μ΄λ¦, κ°κ²© λ± μ νμ΄ μ§λ νΉμ§κ³Ό κ°μ κ²μ΄λ€.
• λ©μλ : μ νμΌλ‘ λ°μ§μλ©΄ ν΄λμ€λ₯Ό ν΅ν΄ νκ³ μ νλ μ‘μ μ΄λ€.
ν΄λμ€ μμ± μ μ
'μλ > Code-States' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[D+10] ν μ€νΈ μ£Όλ κ°λ° (0) | 2020.09.16 |
---|---|
[D+09] Command Line κ³Ό Git (0) | 2020.09.16 |
[D+08] λ λ²μ§Έ Pair Programming κ·Έλ¦¬κ³ λ³΅μ΅ (0) | 2020.09.14 |
[D+07] 첫째 μ£Ό νκΈ° (0) | 2020.09.13 |
[D+06] κ°μΈ κ³΅λΆ (0) | 2020.09.12 |
λκΈ