๐ ๋ชฉํ: ์๋ฐ์คํฌ๋ฆฝํธ ๊ธฐ์ด๋ฅผ ๊ณต๋ถํ๊ณ ๋ถ์กฑํ ๋ถ๋ถ์ ์ฑ์ฐ์.
๐ 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;
}