Skip to content

Latest commit

ย 

History

History
72 lines (51 loc) ยท 2.25 KB

03_ModernJS.md

File metadata and controls

72 lines (51 loc) ยท 2.25 KB

๋ชจ๋˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ

ES6(ES2015) ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • ๋””ํดํŠธ ํŒŒ๋ผ๋ฏธํ„ฐ : ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ธฐ๋ณธ๊ฐ’์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด : ๋ฌธ์ž์—ด์„ ํ‘œํ˜„ํ•  ๋•Œ ๋ณ€์ˆ˜ ๋“ฑ์„ + ์—ฐ์‚ฐ์œผ๋กœ ๋ถ™์ด์ง€ ์•Š๊ณ  ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ : ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ”„๋กœ๋ฏธ์Šค ๊ฐ์ฒด : ํ”„๋กœ๋ฏธ์Šค๋ฅผ ํ†ตํ•ด ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • let, const : ์Šค์ฝ”ํ”„ ์ฒ˜๋ฆฌ๊ฐ€ ๊นŒ๋‹ค๋กœ์› ๋˜ var ๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ์ง€์›ํ•˜๋Š” let๊ณผ const ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Class : ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ES7(ES2016) ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • includes : ๋ฐฐ์—ด์— ์š”์†Œ ์กด์žฌ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” includes ํ•จ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ES8(ES2017) ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • asyc / await : ๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” async/await ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • entries / values : ๊ฐ์ฒด์˜ key-value ๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜๋ฐ›๋Š” entries ํ•จ์ˆ˜์™€ ๊ฐ์ฒด์˜ value๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜๋ฐ›๋Š” values ํ•จ์ˆ˜๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ES9(ES2018) ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • rest / spread : ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ๋Š” rest ์™€ ๋ฐฐ์—ด์„ ๋ถ„ํ•ดํ•ด ์š”์†Œ๋“ค์„ ๊บผ๋‚ผ ์ˆ˜ ์žˆ๋Š” spread ์—ฐ์‚ฐ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ES11(ES2020) ์ฃผ์š” ์—…๋ฐ์ดํŠธ

  • Optional Chaining : ๊ฐ์ฒด์˜ ์ฐธ์กฐ๊ฐ€๋Šฅํ•œ ๊ฐ’์ด ์žˆ์„ ๋•Œ๋งŒ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
const person = {
	name: 'hun',
	age: {
		korean : 27,
		american: 25,
	},
	nationality: korea
}

console.log(person.age.korean);
// ๊ฒฐ๊ณผ
// 27

const person = {
	name: 'hun',
	nationality: korea
}

console.log(person.age.korean);
// ๊ฒฐ๊ณผ
// Error 

const person = {
  name: "hun",
  nationality: "korea"
};

console.log(person?.age?.korean);
// ๊ฒฐ๊ณผ
// undefined 
  • null ๋ณ‘ํ•ฉ ์—ฐ์‚ฐ์ž : ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๊ฐ€ null ์ด๋‚˜ define์ผ ๊ฒฝ์šฐ์—๋งŒ ์˜ค๋ฅธ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๊ทธ ์™ธ์—๋Š” ์™ผ์ชฝ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ๋ฒ•์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. 0์ด๋‚˜ ๋นˆ ๋ฌธ์ž์—ด ๊ฐ™์€ falsy ๊ฐ’ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์ตœ์†Œํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
const foo = null ?? 'default'
console.log(foo)
// ๊ฒฐ๊ณผ
// 'default'