๐Ÿ“Frontend/๐Ÿ““etc

[ํ•ญํ•ด99] WIL

Hoon2 2022. 7. 24. 20:20
728x90

์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ ES

 

ES?

 

Javascript๋Š” ์›๋ž˜ ๋„ท์Šค์ผ€์ดํ”„์—์„œ ์‹œ์ž‘๋œ ์–ธ์–ด์ธ๋ฐ, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค์˜ ๊ทผ๊ฐ„์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋Š” C์–ธ์–ด๋ณด๋‹ค ํ›จ์”ฌ ๋‚˜์ค‘์— ๊ฐœ๋ฐœ๋œ ์–ธ์–ด์ด๋‹ค. ๊ฒฐ๊ณผ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด ES๋ผ๋Š” ๊ฒƒ์€ 'Javascript์˜ ํ‘œ์ค€ ๊ทœ๊ฒฉ'์„ ์˜๋ฏธํ•˜๋Š”๋ฐ ์‹ค์ œ๋กœ ์„œ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ๋Œ์–ด๋“ค์ด๊ธฐ ์œ„ํ•ด ์ด๊ฒƒ์ €๊ฒƒ ๊ธฐ๋Šฅ์„ ์ถ”๊ฐ€ํ•˜๋‹ค ๋ณด๋‹ˆ Javascript์™€ JScript๋Š” ์ ์  ๋‹ค ๋‹ฌ๋ผ์ง€๋Š” ๊ฒฝํ–ฅ์„ ๋ณด์˜€๊ณ , ์ด์— ๋ณด๋‹ค๋ชปํ•œ European Computer Manufacturers Association (ECMA, ํ˜„ ECMA International)์—์„œ Javascript์— ๋Œ€ํ•œ ํ‘œ์ค€์„ ์ •ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

๋˜, ECMA์—์„œ๋Š” Javascript์˜ ํ‘œ์ค€๋งŒ ์ •ํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ๋‹ค๋ฅธ ํ‘œ์ค€์•ˆ๋„ ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ๋“ค๊ณผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์ˆซ์ž๋ฅผ ๋ถ™์˜€๊ณ  ์ด๊ฒƒ์ด 262๊ฐ€ ๋˜์—ˆ๋‹ค. ์ฆ‰, ECMA 262๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€ ๊ทœ๊ฒฉ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ํ˜„์žฌ ์šฐ๋ฆฌ๊ฐ€ ES๋ผ๊ณ  ๋ถ€๋ฅด๋Š” ๊ฒƒ์€ ECMA Script์˜ ์•ฝ์ž์ด๋ฉฐ, ES5๋Š” ECMA Script 5์˜ ๊ทœ๊ฒฉ์„ ๋”ฐ๋ฅธ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

ES5?, ES6?

 

์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๋“ค(์˜์–ด, ํ•œ๊ตญ์–ด, ์ผ๋ณธ์–ด, ์ค‘๊ตญ์–ด ๋“ฑ๋“ฑ..)์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋ฐœ์ „ํ•˜๊ณ  ๋ณ€ํ˜•ํ•˜๋“ฏ์ด, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค๋„ ๊ธฐ์กด์˜ ์ทจ์•ฝํ•œ ์ ๋“ค์€ ๋ณด์™„ํ•˜๊ณ  ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•˜๋ฉด์„œ ๋ฐœ์ „ํ•ด ๋‚˜๊ฐ€๊ณ  ์žˆ๋‹ค. ES๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Javascript๋ฅผ ๋ฐœ์ „์‹œํ‚ค๊ธฐ ์œ„ํ•ด์„œ ๊ธฐ๋Šฅ ์ถ”๊ฐ€๋‚˜ ๋ณ€๊ฒฝ์ ์„ ์ถ”๊ฐ€ํ•œ ๋ฒ„์ „์—…์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

 

  • ES 5
  1. ๋ฐฐ์—ด์— forEach, map, filter, reduce, some, every์™€ ๊ฐ™์€ ๋ฉ”์†Œ๋“œ๋“ค์ด ์ง€์›๋˜์—ˆ๋‹ค.
  2. Object์— ๋Œ€ํ•œ getter์™€ setter๊ฐ€ ์ง€์›๋˜์—ˆ๋‹ค.
  3. Javascript strict๋ชจ๋“œ๊ฐ€ ์ง€์›๋˜์—ˆ๋‹ค. (๊ธฐ์กด์— ๋น„ํ•ด์„œ ๋” ์—„๊ฒฉํ•˜๊ฒŒ ๋ฌธ๋ฒ• ๊ฒ€์‚ฌ๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.)
  4. json ํ˜•์‹์˜ ์ž๋ฃŒ๋“ค์„ ์ง€์›ํ•œ๋‹ค. ๊ณผ๊ฑฐ์—๋Š” XML์ด๋ผ๋Š” ๊ทœ๊ฒฉ์„ ์‚ฌ์šฉํ–ˆ๋‹ค๊ฐ€, json์ด ์ธ๊ธฐ๋ฅผ ๋Œ๋ฉด์„œ javascript ์—ญ์‹œ ์ง€์›์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค.

 

  • ES 6
  1. Hoisting์„ ๊ฐœ์„ ํ–ˆ๋‹ค.
    ๊ธฐ์กด์—๋Š” varํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ด์ŠคํŒ…์ด ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ผ์–ด๋‚ฌ๋Š”๋ฐ ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ธ”๋ก ์Šค์ฝ”ํ”„๋ฅผ ๊ฐ€์ง„ let๊ณผ const๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
  2. ํ™”์‚ดํ‘œ ๋ฌธ๋ฒ•์„ ์ง€์›ํ•œ๋‹ค.
    ์žฅ์  : ์ฝ”๋“œ์˜ ๊ฐ„๊ฒฐํ™”, this๋ฅผ ๋ฐ”์ธ๋”ฉํ•˜์ง€ ์•Š๋Š”๋‹ค. (์˜ˆ์‹œ ๋งํฌ)
  3. iterator์™€ generator ์ถ”๊ฐ€.
  4. module์˜ import/export ์ถ”๊ฐ€.
  5. Promise ๋„์ž…
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋น„๋™๊ธฐ์  ์–ธ์–ด์ด๊ธฐ ๋•Œ๋ฌธ์— callback์— ๋Œ€ํ•œ ์ด์Šˆ๊ฐ€ ๋งŽ์•˜์œผ๋‚˜ ์ด๋ถ€๋ถ„์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

728x90