14μ₯ μ μ λ³μμ λ¬Έμ μ
λ³μμ μλͺ μ£ΌκΈ°
- μ§μ λ³μμ μλͺ
μ£ΌκΈ°
μ μ λ³μμ μλͺ μ£ΌκΈ°λ μ ν리μΌμ΄μ μ μλͺ μ£ΌκΈ°μ κ°λ€. νμ§λ§ ν¨μ λ΄λΆμμ μ μΈλ μ§μ λ³μλ ν¨μκ° νΈμΆλλ©΄ μμ±λκ³ ν¨μκ° μ’ λ£νλ©΄ μλ©Ένλ€. μ¦, μ§μ λ³μμ μλͺ μ£ΌκΈ°λ ν¨μμ μλͺ μ£ΌκΈ°μ μΌμΉνλ€.
μ§μ λ³μκ° ν¨μλ³΄λ€ μ€λ μμ‘΄νλ κ²½μ°λ μλ€. λκ΅°κ° μ€μ½νλ₯Ό μ°Έμ‘°νκ³ μμΌλ©΄ μ€μ½νλ μλ©Ένμ§ μκ³ μμ‘΄νκ² λλ€. μ§μ λ³μλ ν¨μκ° μμ±ν μ€μ½νμ λ±λ‘λλ€. λ°λΌμ λ³μλ μμ μ΄ λ±λ‘λ μ€μ½νκ° μλ©Έ(λ©λͺ¨λ¦¬ ν΄μ )λ λκΉμ§ μ ν¨νλ€.
λν νΈμ΄μ€ν μ μ€μ½νλ₯Ό λ¨μλ‘ λμνλ©°, νΈμ΄μ€ν μ λ³μ μ μΈμ΄ μ€μ½νμ μ λλ‘ λμ΄ μ¬λ €μ§ κ²μ²λΌ λμνλ μλ°μ€ν¬λ¦½νΈ κ³ μ μ νΉμ§μ λ§νλ€κ³ ν μ μλ€. - μ μ λ³μμ μλͺ
μ£ΌκΈ°
λΈλΌμ°μ νκ²½μμ μ μ κ°μ²΄λ windowμ΄λ―λ‘ λΈλΌμ°μ νκ²½μμ [ic]var[/ic] ν€μλλ‘ μ μΈν μ μ λ³μλ μ μ κ°μ²΄ windowμ νλ‘νΌν°λ€. μ μ κ°μ²΄ windowλ μΉνμ΄μ§λ₯Ό λ«κΈ° μ κΉμ§ μ ν¨νλ€. μ¦, [ic]var[/ic] ν€μλλ‘ μ μΈν μ μ λ³μμ μλͺ μ£ΌκΈ°λ μ μ κ°μ²΄μ μλͺ μ£ΌκΈ°μ μΌμΉνλ€.
μ μ λ³μμ λ¬Έμ μ
- μ묡μ κ²°ν©
μ μ λ³μλ₯Ό μ μΈνλ κ²μ λͺ¨λ μ½λκ° μ μ λ³μλ₯Ό μ°Έμ‘°νκ³ λ³κ²½ν μ μλ μ묡μ κ²°ν©μ νμ©νλ κ²μ΄λ€. λ³μμ μ ν¨ λ²μκ° ν¬λ©΄ ν΄μλ‘ μ½λμ κ°λ μ±μ λλΉ μ§κ³ μλμΉ μκ² μνκ° λ³κ²½λ μ μλ μνμ±λ λμμ§λ€. - κΈ΄ μλͺ
μ£ΌκΈ°
μ μ λ³μλ μλͺ μ£ΌκΈ°κ° κΈΈλ€. λ°λΌμ λ©λͺ¨λ¦¬ 리μμ€λ μ€λ κΈ°κ° μλΉνλ€. λν μ μ λ³μμ μνλ₯Ό λ³κ²½ν μ μλ μκ°λ κΈΈκ³ κΈ°νλ λ§λ€. - μ€μ½ν μ²΄μΈ μμμ μ’
μ μ μ‘΄μ¬
μ μ λ³μλ μ€μ½ν μ²΄μΈ μμμ μ’ μ μ μ‘΄μ¬νλ€. μ΄λ λ³μλ₯Ό κ²μν λ μ μ λ³μκ° κ°μ₯ λ§μ§λ§μ κ²μλλ€λ κ²μ λ§νλ€. μ¦, μ μ λ³μμ κ²μ μλκ° κ°μ₯ λ리λ€. - λ€μμ€νμ΄μ€ μ€μΌ
μλ°μ€ν¬λ¦½νΈμ κ°μ₯ ν° λ¬Έμ μ μ€ νλλ νμΌμ΄ λΆλ¦¬λμ΄ μλ€ ν΄λ νλμ μ μ μ€μ½νλ₯Ό 곡μ νλ€λ κ²μ΄λ€. λ°λΌμ λ€λ₯Έ νμΌ λ΄μμ μ‘΄μ¬ν΄λ μμμΉ λͺ»ν κ²°κ³Όλ₯Ό κ°μ Έμ¬ μ μλ€.
μ μ λ³μμ μ¬μ©μ μ΅μ νλ λ°©λ²
μ μ λ³μλ₯Ό λ°λμ μ¬μ©ν΄μΌ ν μ΄μ λ₯Ό μ°Ύμ§ λͺ»νλ€λ©΄ μ§μ λ³μλ₯Ό μ¬μ©ν΄μΌ νλ€. λ³μμ μ€μ½νλ μ’μμλ‘ μ’λ€.
- μ¦μ μ€ν ν¨μ
λͺ¨λ μ½λλ₯Ό μ¦μ μ€ν ν¨μλ‘ κ°μΈλ©΄ λͺ¨λ λ³μλ μ¦μ μ€ν ν¨μμ μ§μ λ³μκ° λλ€. - λ€μμ€νμ΄μ€ κ°μ²΄
μ μμ λ€μμ€νμ΄μ€ μν μ λ΄λΉν κ°μ²΄λ₯Ό μμ±νκ³ μ μ λ³μμ²λΌ μ¬μ©νκ³ μΆμ λ³μλ₯Ό νλ‘νΌν°λ‘ μΆκ°νλ λ°©λ²μ΄λ€. - λͺ¨λ ν¨ν΄
λͺ¨λ ν¨ν΄μ ν΄λμ€λ₯Ό λͺ¨λ°©ν΄μ κ΄λ ¨μ΄ μλ λ³μμ ν¨μλ₯Ό λͺ¨μ μ¦μ μ€ν ν¨μλ‘ κ°μΈ νλμ λͺ¨λμ λ§λ λ€. - ES6 λͺ¨λ
ES6 λͺ¨λμ μ¬μ©νλ©΄ λλ μ μ λ³μλ₯Ό μ¬μ©ν μ μλ€. ES6 λͺ¨λμ νμΌ μ체μ λ μμ μΈ λͺ¨λ μ€μ½νλ₯Ό μ 곡νλ€. [ic]script[/ic] νκ·Έμ [ic]type="module"[/ic] μ΄νΈλ¦¬λ·°νΈλ₯Ό μΆκ°νλ©΄ λ‘λλ μλ°μ€ν¬λ¦½νΈ νμΌμ λͺ¨λλ‘μ λμνλ€. λͺ¨λμ νμΌ νμ₯μλ mjsλ₯Ό κΆμ₯νλ€.
var MYAPP = {}; // μ μ λ€μμ€νμ΄μ€ κ°μ²΄
MYAPP.name = 'Lee';
console.log(MYAPP.name); // Lee
// λͺ¨λ ν¨ν΄
var Counter = (function() {
// private λ³μ (μΈλΆμμ μ κ·Όν μ μκ³ λ΄λΆμμλ§ μ¬μ© λλ€)
var num = 0;
// μΈλΆλ‘ 곡κ°ν λ°μ΄ν°λ λ©μλλ₯Ό νλ‘νΌν°λ‘ μΆκ°ν κ°μ²΄λ₯Ό λ°ννλ€.
return {
increase() {
return ++num;
},
decrease() {
return --num;
}
}
})();
console.log(Counter.num); // undefined
console.log(Counter.increase); // 1
<!-- ES6 λͺ¨λ -->
<script type="module" src="lib.mjs"></script>
15μ₯ let, const ν€μλμ λΈλ‘ λ 벨 μ€μ½ν
var ν€μλλ‘ μ μΈν λ³μμ λ¬Έμ μ
- λ³μ μ€λ³΅ μ μΈ νμ©
λ§μ½ λμΌν μ΄λ¦μ λ³μκ° μ΄λ―Έ μ μΈλμ΄ μλ κ²μ λͺ¨λ₯΄κ³ λ³μλ₯Ό μ€λ³΅ μ μΈνλ©΄μ κ°κΉμ§ ν λΉνλ€λ©΄ μλμΉ μκ² λ¨Όμ μ μΈλ λ³μ κ°μ΄ λ³κ²½λλ λΆμμ©μ΄ λ°μνλ€. - ν¨μ λ 벨 μ€μ½ν
ν¨μ λ 벨 μ€μ½νλ μ μ λ³μλ₯Ό λ¨λ°ν κ°λ₯μ±μ λμΈλ€. μ΄λ‘ μΈν΄ μλμΉ μκ² μ μ λ³μκ° μ€λ³΅ μ μΈλλ κ²½μ°κ° λ°μνλ€. - λ³μ νΈμ΄μ€ν
λ³μ νΈμ΄μ€ν μ μν΄ [ic]var[/ic] ν€μλλ‘ μ μΈν λ³μλ₯Ό λ³μ μ μΈλ¬Έ μ΄μ μ μ°Έμ‘°ν μ μλ€. λ³μ μ μΈλ¬Έ μ΄μ μ λ³μλ₯Ό μ°Έμ‘°νλ κ²μ λ³μ νΈμ΄μ€ν μ μν΄ μλ¬λ₯Ό λ°μμν€μ§λ μμ§λ§ νλ‘κ·Έλ¨μ νλ¦μ λ§μ§ μμλΏλλ¬ κ°λ μ±μ λ¨μ΄λ¨λ¦¬κ³ μ€λ₯λ₯Ό λ°μμν¬ μ¬μ§λ₯Ό λ¨κΈ΄λ€.
let ν€μλ
- λ³μ μ€λ³΅ μ μΈ κΈμ§
[ic]let[/ic] ν€μλλ‘ μ΄λ¦μ΄ κ°μ λ³μλ₯Ό μ€λ³΅ μ μΈνλ©΄ λ¬Έλ² μλ¬κ° λ°μνλ€. - λΈλ‘ λ 벨 μ€μ½ν
[ic]let[/ic] ν€μλλ‘ μ μΈν λ³μλ λΈλ‘ λ 벨 μ€μ½νλ₯Ό λ°λ₯Έλ€. - λ³μ νΈμ΄μ€ν
[ic]let[/ic] ν€μλλ‘ μ μΈν λ³μλ 'μ μΈ λ¨κ³'μ 'μ΄κΈ°ν λ¨κ³'κ° λΆλ¦¬λμ΄ μ§νλλ€. μ¦, λ°νμ μ΄μ μ μλ°μ€ν¬λ¦½νΈ μμ§μ μν΄ μ묡μ μΌλ‘ μ μΈ λ¨κ³κ° λ¨Όμ μ€νλμ§λ§ μ΄κΈ°ν λ¨κ³λ λ³μ μ μΈλ¬Έμ λλ¬νμ λ μ€νλλ€.
[ic]let[/ic] ν€μλλ‘ μ μΈν λ³μλ μ€μ½νμ μμ μ§μ λΆν° μ΄κΈ°ν λ¨κ³ μμ μ§μ (λ³μ μ μΈλ¬Έ)κΉμ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ€. μ€μ½νμ μμ μ§μ λΆν° μ΄κΈ°ν μμ μ§μ κΉμ§ λ³μλ₯Ό μ°Έμ‘°ν μ μλ ꡬκ°μ μΌμμ μ¬κ°μ§λλΌκ³ λΆλ₯Έλ€.
(λ³μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ²μ²λΌ 보μ΄μ§λ§ νΈμ΄μ€ν μ μ¬μ ν λ°μνλ€.) - μ μ κ°μ²΄μ let
[ic]let[/ic] ν€μλλ‘ μ μΈν μ μ λ³μλ μ μ κ°μ²΄(window)μ νλ‘νΌν°κ° μλλ€. [ic]let[/ic] μ μ λ³μλ 보μ΄μ§ μλ κ°λ μ μΈ λΈλ‘(μ μ λ μ컬 νκ²½μ μ μΈμ νκ²½ λ μ½λ) λ΄μ μ‘΄μ¬νκ² λλ€.
const ν€μλ
- μ μΈκ³Ό μ΄κΈ°ν
[ic]const[/ic] ν€μλλ‘ μ μΈν λ³μλ λ°λμ μ μΈκ³Ό λμμ μ΄κΈ°νν΄μΌ νλ€.
[ic]const[/ic] ν€μλλ‘ μ μΈν λ³μλ let ν€μλλ‘ μ μΈν λ³μμ λ§μ°¬κ°μ§λ‘ λΈλ‘ λ 벨 μ€μ½νλ₯Ό κ°μ§λ©°, λ³μ νΈμ΄μ€ν μ΄ λ°μνμ§ μλ κ²μ²λΌ λμνλ€. - μ¬ν λΉ κΈμ§
[ic]const[/ic] ν€μλλ‘ μ μΈν λ³μλ μ¬ν λΉμ΄ κΈμ§λλ€. - μμ
[ic]const[/ic] ν€μλλ‘ μ μΈν λ³μμ μμ κ°μ ν λΉν κ²½μ° λ³μ κ°μ λ³κ²½ν μ μλ€. μ΄λ¬ν νΉμ§μ μ΄μ©ν΄ [ic]const[/ic] ν€μλλ₯Ό μμλ₯Ό νννλ λ° μ¬μ©νκΈ°λ νλ€.
μΌλ°μ μΌλ‘ μμμ μ΄λ¦μ λλ¬Έμλ‘ μ μΈν΄ μμμμ λͺ νν λνλΈλ€. μ¬λ¬ λ¨μ΄λ‘ μ΄λ€μ§ κ²½μ°μλ μΈλμ€μ½μ΄λ‘ ꡬλΆν΄μ μ€λ€μ΄ν¬ μΌμ΄μ€λ‘ νννλ κ²μ΄ μΌλ°μ μ΄λ€. [ic]const TAX_RATE = 0.1;[/ic] - const ν€μλμ κ°μ²΄
[ic]const[/ic] ν€μλλ μ¬ν λΉμ κΈμ§ν λΏ λΆλ³μ μλ―Ένμ§λ μλλ€. λ€μ λ§ν΄, μλ‘μ΄ κ°μ μ¬ν λΉνλ κ²μ λΆκ°λ₯ νμ§λ§ νλ‘νΌν° λμ μμ±, μμ , νλ‘νΌν° κ°μ λ³κ²½μ ν΅ν΄ κ°μ²΄λ₯Ό λ³κ²½νλ κ²μ κ°λ₯νλ€. μ΄λ κ°μ²΄κ° λ³κ²½λλλΌλ λ³μμ ν λΉλ μ°Έμ‘° κ°μ λ³κ²½λμ§ μλλ€.
var vs. let vs. const
- ES6 λ₯Ό μ¬μ©νλ€λ©΄ [ic]var[/ic] ν€μλλ μ¬μ©νμ§ μλλ€.
- μ¬ν λΉμ΄ νμν κ²½μ°μ νμ ν΄ let ν€μλλ₯Ό μ¬μ©νλ€. λ³μμ μ€μ½νλ μ΅λν μ’κ² λ§λ λ€.
- λ³κ²½μ΄ λ°μνμ§ μλ μμ κ°κ³Ό κ°μ²΄μλ [ic]const[/ic] ν€μλλ₯Ό μ¬μ©νλ€.