π λͺ©ν: μλ°μ€ν¬λ¦½νΈ κΈ°μ΄λ₯Ό 곡λΆνκ³ λΆμ‘±ν λΆλΆμ μ±μ°μ.
π ESλ ECMA Scriptμ μ€μλ§μ΄λ€. ES6λ μλ°μ€ν¬λ¦½νΈλ₯Ό νμ€ν μν€κΈ° μν΄ λ§λ€μ΄μ‘λ€.
μλ°μ€ν¬λ¦½νΈμ μμ¬κ° μ μ κΉμ΄μ§κ³ , λ¬Έλ²μ 보μμ΄ νμνλ©΄μ λ²μ λ³λ‘ λ¬Έλ²μ νμ₯μν€κ³ λΈλΌμ°μ λ μλ°μ€ν¬λ¦½νΈμ νΉμ λ²μ μ μ§μνκΈ° νκΈ° μν΄μ ESκ° λͺ μΈλ₯Ό νμ ν΄ μλ€κ³ νλ€.
μ¦, ESλ μλ°μ€ν¬λ¦½νΈλ₯Ό νμ€ν, κ·κ²©ννκΈ° μν΄ λ§λ€μ΄μ§ κ²μ΄λ€.
μ§κΈμ ES10 λ²μ κΉμ§ λμλ€. μ£Όλ‘ μ¬μ©λλ κ²μ ES6μΈλ°, 6λ λ²μ μ΄λ¦μ΄κ³ ES 2015λΌκ³ λ νλ€. 1~2λ μ κΉμ§λ§ ν΄λ ES6λ₯Ό μ¬μ©νλ μ¬λμ λ§μ§ μμμ§λ§, μ§κΈμ λ무λ λ§μ μ¬λλ€μ΄ μ°κ³ μλ€. μ΄μΈμμ λ무λ λΉ λ₯΄κ² λ³ννλ€.π
ES6λ₯Ό λ§μ΄ νμ©νλ©΄ μ’λ€κ³ νλ€. μμ¦ ES7μ μ¬μ©νλ κ°λ°μλ€λ μ μ°¨ λμ΄λκ³ μλ€.
ES6λ₯Ό 곡λΆνλ€λ³΄λ©΄, μ λ§ νΈλ¦¬ν ν¨μλ€κ³Ό μ²μ보λ λ¬Έλ²λ€λ λ§μ΄ μ겨λ¬λ€λ κ²μ λλ μ μλ€. κ·Έλμ 곡λΆκ° νμνλ€. μ¬λ¬κ°μ§ 곡λΆλ€ μ€ μ€λμ arrow functionμ΄λ€.
//ES5
function() {}
//ES6
() => {}
μ΄λ¦μλ ν¨μ, anonymous functionμ νμΈν΄ λ³Ό μ μλλ° ES6λ functionμ΄λΌλ ν€μλκ° λΉ μ§κ³ μκ΄νΈλ§ λ¨μλ€. κ·Έλ¦¬κ³ =>
κ° μΆκ°λμλ€.
//ES5
function getName() {}
//ES6
const getName = () => {}
νΈμΆν λλ
getName()
ES6λ ν¨μλ₯Ό getName
μ΄λΌλ λ³μμ μ μ₯νλ€.
μ¬μ€ ν¨μλ λ³μμ μ μ₯ν μ μλ€.
κ·Έλμ ES5 μΌ λλ λ§μ°¬κ°μ§λ‘ λ³μμ μ μ₯μ΄ κ°λ₯νλ€.
//ES5
//Function Declaration
function getName() {}
//ES5
//Function Expression
const getName = function() {}
μΈμλ₯Ό λ°λλ€λ©΄
//ES5
const getName = function(name) {}
//ES6
const getName = (name) => {}
const getName = name => {}
μΈμλ₯Ό λ κ° μ΄μ λ°λλ€λ©΄ (μκ΄νΈ) μλ΅μ΄ λΆκ°νλ€.
//ES5
const getName = function(name, age) {}
//ES6
const getName = (name, age) => {}
리ν΄νλ ν¨μλ λ§λ€μ΄λ³΄λ©΄
//ES5
function hi(text) {
text += 'νμΈμ';
return text;
}
//ES6
const hi = text => {
text += 'νμΈμ';
return text
};
ν¨μκ° μ€ν λ΄μ©μ΄ λ±ν μμ΄ λ¦¬ν΄λ§ νλ€λ©΄ {μ€κ΄νΈ} μλ΅μ΄ κ°λ₯νλ€.
//ES5
function getName(name) {
return name;
}
//ES6
const hi = name => { return name };
const hi = name => name;
μμμ 보λ κ²μ²λΌ {μ€κ΄νΈ}μ 리ν΄μ΄ μλ΅λ κ²½μ°, arrow function λ€μλ 리ν΄λ "κ°"λ§ μ°λ©΄ λλ€.
//ES5
function getFullName(first, familly) {
return first + familly;
}
//ES6
const hi = (first, familly) => { return first + familly };
const hi = (first, familly) => first + familly;
// λ¬Έμ 1
function welcome(name){
return "μλ
νμΈμ" + name
}
// μλ΅: Arrow Functionμ νμ©νμ¬ λ³ν
const welcome = (name) => "μλ
νμΈμ" + name;
// λ¬Έμ 2
const handleBio = (nickname, bio) => {
const user = {
nickname : nickname,
bio : bio,
}
return user;
}
// μλ΅: Named Functionμ νμ©νμ¬ λ³ν
const handleBio = function(nickname, bio) {
const user = {
nickname : nickname,
bio : bio,
}
return user;
}