JavaScript | pre course 26-ECMA Script 2015

ํƒœํ˜„ยท2021๋…„ 3์›” 26์ผ
1
post-thumbnail

๐Ÿ™‹ ๋ชฉํ‘œ: ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ธฐ์ดˆ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ฑ„์šฐ์ž.

1. ES6 = ECMA Script 2015


๐Ÿ™Œ 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;

2. Assignment


  • function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„๋œ welcome ํ•จ์ˆ˜๋ฅผ, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ ํ‘œํ˜„์œผ๋กœ ๋ฐ”๊พธ์ž.
  • ์ดํ›„, ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋กœ ํ‘œํ˜„๋œ handleBio ํ•จ์ˆ˜๋ฅผ, function ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‘œํ˜„๋œ ํ•จ์ˆ˜๋กœ ๋ฐ”๊พธ์ž.
// ๋ฌธ์ œ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;
}
profile
์•ˆ๋…•ํ•˜์„ธ์š”, ์ง€์‹์„ ๊ณต์œ ํ•˜๋Š” ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด

Powered by GraphCDN, the GraphQL CDN