17. μ μ λ³μμ λ¬Έμ μ
π λ³μμ μλͺ μ£ΌκΈ°
π£ μ§μ λ³μμ μλͺ μ£ΌκΈ°
1. λ³μλ μ μΈμ μν΄ μμ±λκ³ ν λΉμ ν΅ν΄ κ°μ κ°κ³ μΈμ κ° μλ©Ένλ μλͺ μ£ΌκΈ°λ₯Ό κ°μ§κ³ μλ€.
2. λ³μλ μμ μ΄ μ μΈλ μμΉμμ μμ±λκ³ μλ©Ένλ€.
4. μ§μλ³μμ μλͺ μ£ΌκΈ° = ν¨μμ μλͺ μ£ΌκΈ°
π£ μ μ λ³μμ μλͺ μ£ΌκΈ°
1. μ μ μ½λλ λͺ μμ μΈ νΈμΆ μμ΄ μ€νλλ€.
2. μ μ μ½λμλ λ°νλ¬Έμ μ¬μ©ν μ μμ΄μ λ§μ§λ§ λ¬Έμ΄ μ€νλμ λμ΄μ μ€νλ λ¬Έμ΄ μμλ μ’ λ£λλ€.
3. μ μλ³μμ μλͺ μ£ΌκΈ° = μ ν리μΌμ΄μ μ μλͺ μ£ΌκΈ°
4. var ν€μλλ‘ μ μΈν μ μ λ³μμ μλͺ μ£ΌκΈ°λ μ μ κ°μ²΄μ μλͺ μ£ΌκΈ°μ μΌμΉ.
π μ μ λ³μμ λ¬Έμ μ
1. μ묡μ κ²°ν©
μ μ λ³μμ μ μΈν μλλ λͺ¨λ μ½λκ° μ μ λ³μλ₯Ό μ°Έμ‘°νκ³ λ³κ²½ν μ μλ μ묡μ κ²°ν©μ νμ©νλκ².
νμ§λ§ λ³μμ μ ν¨λ²μκ° ν΄μλ‘ κ°λ μ±μ΄ λλΉ μ§κ³ μνκ΄λ¦¬μ μνμ±λ λμμ§λ€.
2. κΈ΄ μλͺ μ£ΌκΈ°
μ μ λ³μμ μλͺ μ£ΌκΈ°λ μ ν리μΌμ΄μ μ μλͺ μ£ΌκΈ°μ κ°κΈ°λλ¬Έμ μλͺ μ£ΌκΈ°κ° κΈΈλ€.
κ·Έλμ λ©λͺ¨λ¦¬ 리μμ€λ μ€λ κΈ°κ° μλΉνκ³ νΉν var ν€μλλ μ¬μ μΈ, μ¬ν λΉμ΄ κ°λ₯νκΈ° λλ¬Έμ
λ³μ μ΄λ¦μ΄ μ€λ³΅λ μ μμ΄μ μλμΉμλ μ¬ν λΉμ΄ λ μ μμ΄ μνκ΄λ¦¬ μνμ±λ λμμ§λ€.
3. μ€μ½νμ²΄μΈ μμμ μ’ μ μ μ‘΄μ¬
μ’ μ μ μ‘΄μ¬νκΈ° λλ¬Έμ λ³μλ₯Ό κ²μν λ μ μ λ³μκ° κ°μ₯ λ§μ§λ§μ κ²μλλ€.
κ·Έλμ κ²μμλκ° κ°μ₯ λ리λ€.
4. λ€μμ€νμ΄μ€ μ€μΌ
JSλ νμΌμ΄ λΆλ¦¬λμ΄ μμ΄λ νλμ μ μ μ€μ½νλ₯Ό 곡μ νλ€.
κ·Έλμ λ€λ₯Έ νμΌμμ λμΌν μ΄λ¦μΌλ‘ μ μ λ³μ,ν¨μκ° κ°μ μ€μ½νμ μ‘΄μ¬νλ©΄ μμνμ§ λͺ»νλ κ²°κ³Όκ° μκΈΈ μ μλ€.
π μ μ λ³μ μ΅μ νκΈ°
1. μ μ λ³μλ₯Ό λ°λμ μ¬μ©ν μ΄μ κ° μλ€λ©΄ μ§μ λ³μλ₯Ό μ¬μ©νλ€.
2. λ³μμ μ€μ½νλ μ’μμλ‘ μ’λ€.
π£ μ¦μ μ€ν ν¨μ
λͺ¨λ μ½λλ₯Ό μ¦μ μ€ν ν¨μλ‘ κ°μΈλ©΄ λͺ¨λ λ³μλ μ¦μ μ€ν ν¨μμ μ§μ λ³μκ° λλ€.
(function (){
var foo = 10; // μ¦μ μ€ν ν¨μμ μ§μ λ³μ
}());
console.log(foo); // foo is not defined
λΌμ΄λΈλ¬λ¦¬ λ±μ μμ£Ό μ¬μ©λλ€.
π£ λ€μμ€νμ΄μ€ κ°μ²΄
μ μμ λ€μμ€νμ΄μ€ μν μ λ΄λΉν κ°μ²΄λ₯Ό μμ± ν μ μ λ³μμ²λΌ μ¬μ©νκ³ μΆμ λ³μλ₯Ό
νλ‘νΌν°λ‘ μΆκ°νλ€.
var MYAPP = {}; // μ μ λ€μμ€νμ΄μ€ κ°μ²΄
MYAPP.name = 'Lee';
console.log(MYAPP.name); // Lee
λ€μ μ€νμ΄μ€ κ°μ²΄ μμ²΄κ° μ μ λ³μμ ν λΉλμ μ μ©ν λ°©λ²μ μλλ€.
π£ λͺ¨λ ν¨ν΄
1. ν΄λμ€λ₯Ό λͺ¨λ°©ν΄ κ΄λ ¨μ΄ μλ λ³μμ ν¨μλ₯Ό λͺ¨μ μ¦μ μ€ν ν¨μλ‘ κ°μΈ νλμ λͺ¨λμ λ§λ λ€.
2. ν΄λ‘μ λ₯Ό κΈ°λ°μΌλ‘ λμνλ€.
3. μ μ λ³μμ μμ μ μΊ‘μνκΉμ§ κ°λ₯νλ€.
4. μΊ‘μνλ νλ‘νΌν°μ νλ‘νΌν°λ₯Ό μ°Έμ‘°νκ³ μ‘°μν μ μλ λμμΈ λ©μλλ₯Ό νλλ‘ λ¬Άλκ².
5. μΊ‘μνλ κ°μ²΄μ νΉμ νλ‘νΌν°λ λ©μλλ₯Ό κ°μΆ λͺ©μ μΌλ‘ μ¬μ©ν΄ μ 보 μλμ ν μ μλ€.
π£ ES6 λͺ¨λ
1. ES6 λͺ¨λμ νμΌ μ체μ λ μμ μΈ λͺ¨λ μ€μ½νλ₯Ό μ 곡νλ€.
2. κ·Έλμ ES6 λͺ¨λμμλ μ μ λ³μλ₯Ό μ¬μ©ν μ μλ€.
3. var ν€μλλ‘ μ μΈν λ³μλ λμ΄μ μ μ λ³μκ° μλκ³ window κ°μ²΄μ νλ‘νΌν°λ μλλ€.
4. script νκ·Έμ type='module'μ΄νΈλ¦¬λ·°νΈλ₯Ό μΆκ°νλ©΄ λ‘λλ JSνμΌμ λͺ¨λλ‘ λμνλ€.
5. νμ₯μλ mjsλ₯Ό κΆμ₯.
6. νΈλμ€νμΌλ§μ΄λ λ²λ€λ§μ΄ νμνκΈ° λλ¬Έμ μμ§μ webpackλ±μ λͺ¨λ λ²λ€λ¬λ₯Ό μ¬μ©νλ€.