π ES6λ 무μμΈκ°μ?
ES6, 곡μμ μΌλ‘λ ECMAScript 2015λΌκ³ λΆλ¦¬λ μ΄ μ λ°μ΄νΈλ 2015λ μ λ°νλμμ΄μ. μλ°μ€ν¬λ¦½νΈλ₯Ό νμ€ννλ ECMAScript μ¬μμ μ¬μ― λ²μ§Έ μ£Όμ λ²μ μ΄μ£ . ES6λ μλ°μ€ν¬λ¦½νΈ μΈμ΄μ λ§μ μλ‘μ΄ κΈ°λ₯κ³Ό κ°μ μ¬νμ λμ νμ΄μ. μ΄λ¬ν λ³νλ κ°λ°μλ€μ΄ λ ν¨μ¨μ μ΄κ³ κ°κ²°ν μ½λλ₯Ό μμ±ν μ μκ² λμμ€μ.
ES6λ λ§μΉ μ€λ§νΈν°μ΄ μ΄μ μ νΌμ²ν°μ λΉν΄ κ°μ§ νμ μ μΈ κΈ°λ₯λ€μ²λΌ, JavaScriptμ μ½λ© κ²½νμ νκΈ°μ μΌλ‘ κ°μ ν κ²μΌλ‘ λ³Ό μ μμ΄μ.
π₯οΈ ES6μ μλ‘μ΄ κΈ°λ₯λ€
1. let
κ³Ό const
var
λμlet
κ³Όconst
λ₯Ό μ¬μ©νμ¬ λ³μλ₯Ό μ μΈν μ μμ΄μ. μ΄λ λΈλ‘ μ€μ½ν λ³μλ₯Ό κ°λ₯νκ² νλ©°, μ½λλ₯Ό λ μμ νκ³ μ΄ν΄νκΈ° μ½κ² λ§λ€μ΄μ€μ.let
μ λΈλ‘ μ€μ½ν μ§μ λ³μλ₯Ό μ μΈνλ λ° μ¬μ©ν΄μ.const
λ λΈλ‘ μ€μ½ν μ½κΈ° μ μ© μμλ₯Ό μ μΈνλ λ° μ¬μ©ν΄μ.
let x = 10;
if (x === 10) {
let x = 20; // λ€λ₯Έ λ³μ
console.log(x); // 20: λΈλ‘ μ€μ½ν λ΄λΆμ x
}
console.log(x); // 10: λΈλ‘ μ€μ½ν μΈλΆμ x
const y = 50;
console.log(y);
// y = 100; // μ€λ₯: constλ‘ μ μΈλ λ³μλ μ¬ν λΉ λΆκ°
2. νμ΄ν ν¨μ (Arrow Functions)
function
ν€μλ λμ=>
λ₯Ό μ¬μ©νμ¬ κ°κ²°νκ² ν¨μλ₯Ό ννν μ μμ΄μ. μ΄λ νΉν μ½λ°± ν¨μμμ μ μ©ν΄μ.
const add = (a, b) => a + b;
console.log(add(5, 3)); // 8
3. ν νλ¦Ώ 리ν°λ΄ (Template Literals)
- λ°±ν±(`)μ μ¬μ©νμ¬ λ¬Έμμ΄μ νννκ³ ,
${}
ꡬ문μ ν΅ν΄ μ½κ² λ³μλ₯Ό λ¬Έμμ΄μ μ½μ ν μ μμ΄μ.
const name = "Jane";
console.log(`Hello, ${name}!`); // Hello, Jane!
4. κΈ°λ³Έ 맀κ°λ³μ (Default Parameters)
- ν¨μ 맀κ°λ³μμ κΈ°λ³Έκ°μ μ€μ ν μ μμ΄μ. μ΄λ ν¨μ νΈμΆ μ μΌλΆ 맀κ°λ³μλ₯Ό μλ΅ν μ μκ² ν΄μ€μ.
function greet(name, greeting = "Hello") {
return `${greeting}, ${name}!`;
}
console.log(greet("John")); // Hello, John!
console.log(greet("John", "Good morning")); // Good morning, John!
5. ν΄λμ€ (Classes)
class
ν€μλλ₯Ό μ¬μ©νμ¬ κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ λ μ½κ² ꡬνν μ μμ΄μ. μ΄λ νλ‘ν νμ κΈ°λ° μμλ³΄λ€ μ§κ΄μ μ΄μμ.
class Person {
constructor(name) {
this.name = name;
}
greet() {
return `Hello, ${this.name}!`;
}
}
const person1 = new Person("Alice");
console.log(person1.greet()); // Hello, Alice!
6. λͺ¨λ (Modules)
import
μexport
λ¬Έμ μ¬μ©νμ¬ μ½λλ₯Ό λͺ¨λλ‘ λΆλ¦¬νκ³ μ¬μ¬μ©ν μ μμ΄μ. μ΄λ μ½λμ κ΄λ¦¬μ μ μ§λ³΄μλ₯Ό μ©μ΄νκ² ν΄μ.
// math.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
// calc.js
import { add, subtract } from './math.js';
console.log(add(4, 3)); // 7
console.log(subtract(4, 3)); // 1
π€ ES6λ₯Ό μ¬μ©ν΄μΌ νλ μ΄μ
ES6λ μλ°μ€ν¬λ¦½νΈ κ°λ°μ νμ€μ΄ λμμ΄μ. μλ‘μ΄ λ¬Έλ²κ³Ό κΈ°λ₯λ€μ μ½λλ₯Ό λ κ°κ²°νκ³ μ μ§λ³΄μνκΈ° μ½κ² λ§λ€μ΄μ€μ. λν, νλμ μΈ μλ°μ€ν¬λ¦½νΈ νλ μμν¬μ λΌμ΄λΈλ¬λ¦¬λ ES6 λ¬Έλ²μ κΈ°λ°μΌλ‘ νκ³ μμ΄μ. λ°λΌμ ES6λ₯Ό λ°°μ°κ³ μ¬μ©νλ κ²μ νλ μΉ κ°λ°μ μμ΄ λ§€μ° μ€μν΄μ.
1. μ½λμ κ°κ²°μ±κ³Ό κ°λ μ± ν₯μ
- νμ΄ν ν¨μ:
function
ν€μλ λμ νμ΄ν(=>
)λ₯Ό μ¬μ©νλ κ°κ²°ν λ¬Έλ²μΌλ‘ ν¨μλ₯Ό μ μν μ μμ΄μ. μ΄λ νΉν μ½λ°± ν¨μμ κ°μ 짧μ ν¨μμμ μ½λμ κ°λ μ±μ ν¬κ² ν₯μμμΌμ. - ν νλ¦Ώ 리ν°λ΄: λ¬Έμμ΄ λ΄μμ λ³μλ₯Ό μ½κ² μ½μ ν μ μμ΄, 볡μ‘ν λ¬Έμμ΄ μ‘°ν©μ κ°λ¨νκ² λ§λ€ μ μμ΄μ.
2. λ λμ λ°μ΄ν° κ΄λ¦¬
let
κ³Όconst
:var
λμlet
κ³Όconst
λ₯Ό μ¬μ©νλ©΄ λ³μμ μ€μ½νλ₯Ό λ λͺ ννκ² κ΄λ¦¬ν μ μμ΄μ. μ΄λ λ³μμ μ©λμ λ°λΌ λ μμ νκ³ λͺ νν μ½λ μμ±μ κ°λ₯νκ² ν΄μ.
3. νλμ μΈ νλ‘κ·Έλλ° ν¨ν΄ μ§μ
- λͺ¨λ μμ€ν
:
import
μexport
λ₯Ό μ¬μ©ν λͺ¨λ μμ€ν μ μ½λλ₯Ό μ¬μ¬μ© κ°λ₯ν μμ λ¨μλ‘ λλμ΄ κ΄λ¦¬ν μ μκ² ν΄μ€μ. μ΄λ λκ·λͺ¨ μ ν리μΌμ΄μ κ°λ°μ λ§€μ° μ μ©ν΄μ.
π¨ μ£Όμν μ
ES6 λ¬Έλ²μ νμ΅νκ±°λ μ¬μ©ν λλ λ€μκ³Ό κ°μ μ λ€μ μ£Όμν΄μΌ ν΄μ:
- λΈλΌμ°μ νΈνμ±: λͺ¨λ λΈλΌμ°μ κ° ES6μ λͺ¨λ κΈ°λ₯μ μ§μνλ κ²μ μλμμ. νΉν ꡬν λΈλΌμ°μ μμλ μΌλΆ κΈ°λ₯μ΄ μλνμ§ μμ μ μμ΄μ. μ΄λ₯Ό μν΄ Babelκ³Ό κ°μ νΈλμ€νμΌλ¬λ₯Ό μ¬μ©νμ¬ ES6 μ½λλ₯Ό ES5λ‘ λ³νν νμκ° μμ μ μμ΅λλ€.
let
κ³Όconst
μ μ€μ½ν μ΄ν΄:let
κ³Όconst
λ λΈλ‘ μ€μ½νλ₯Ό κ°μ§λ―λ‘, μ΄λ€μ μ€μ½νλ₯Ό μ νν μ΄ν΄νκ³ μ¬μ©νλ κ²μ΄ μ€μν΄μ.- νμ΄ν ν¨μμ
this
: νμ΄ν ν¨μλ μΌλ° ν¨μμ λ¬λ¦¬ μμ λ§μthis
λ₯Ό κ°μ§μ§ μμμ. μ΄λ λλλ‘ μμμΉ λͺ»ν λ¬Έμ λ₯Ό μΌμΌν¬ μ μμΌλ―λ‘, νμ΄ν ν¨μμthis
λ°μΈλ© λ°©μμ μ μ΄ν΄νκ³ μ¬μ©ν΄μΌ ν©λλ€.
π κ²°λ‘
ES6λ μλ°μ€ν¬λ¦½νΈ μΈμ΄μ λ§μ νμ μ μΈ λ³νλ₯Ό κ°μ Έμμ΄μ. μ΄λ¬ν λ³νλ κ°λ°μλ€μ΄ λ ν¨μ¨μ μΌλ‘ μ½λλ₯Ό μμ±νκ³ , λ λμ μ¬μ©μ κ²½νμ μ 곡ν μ μκ² λμμ€μ. ES6μ κΈ°λ₯λ€μ μμ§νκ³ νμ©νλ©΄, μ¬λ¬λΆμ μλ°μ€ν¬λ¦½νΈ νλ‘μ νΈκ° λμ± ν₯μλ κ±°μμ.
π μΆκ° μ 보
- μλ°μ€ν¬λ¦½νΈ λ¬Έλ²μ λν λ κΉμ μ΄ν΄λ₯Ό μνμ λ€λ©΄, MDN Web Docsμμ μμΈν μ 보λ₯Ό μ°Ύμλ³Ό μ μμ΄μ.
'Language > JavaScript' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JavaScript] ν΄λ‘μ (0) | 2024.03.23 |
---|---|
[JavaScript] this (1) | 2024.03.18 |
[JavaScript] async/await (0) | 2023.12.15 |
[JavaScript] μ½λ°± ν¨μ(Callback Function) (0) | 2023.12.14 |
[JavaScript] μ°μ°μ (0) | 2023.12.14 |
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!