๐ฉ๐ป๐ป Weeky I Learned ๐
โญ ECMAScript ๋?
JavaScript๋ฅผ ๊ณต๋ถํ๋ค๋ณด๋ฉด ECMAScript ๋ผ๋ ๋จ์ด๋ฅผ ํ๋ฒ์ฏค์ ๋ณด๊ฒ ๋ ๊ฒ๋๋ค. ๋ ์ฉ์ด๊ฐ ๋ฏน์ค๋์ด์ ์ฌ์ฉ๋๊ธฐ ๋๋ฌธ์ ํท๊ฐ๋ฆฌ๊ธฐ ์ฝ์ต๋๋ค. ์ค๋ ๊ทธ ๋ ๊ฐ์ง ์ฉ์ด์ ์ฐจ์ด๋ฅผ ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
ECMA ์ธํฐ๋ด์ ๋ ๐๐ป ์ ๋ณด ํต์ ์ ๋ํ ํ์ค์ ์ ์ ํ๋ ๋น์๋ฆฌ ํ์คํ ๊ธฐ๊ตฌ์ ๋๋ค
๋ธ๋ผ์ฐ์ ๊ฐ ์๊ฒจ๋๊ณ ์๋ก ์ฌ์ฉ์๋ฅผ ๋์ด๋ด๊ธฐ ์ํด ํผ๋์ค๋ฌ์ธ ์๊ธฐ์ MS์ IE๊ฐ JScript ๋ผ๋ ์ด๋ฆ์ผ๋ก ์๋ฐ์คํฌ๋ฆฝ์ ๋ํด์ ๋ง๋ค์ด๋ ๋๋ค. ์ด ๋ ์ด๋ฏธ Javascript๋ ์กด์ฌํ๊ณ ์์๋๋ฐ ๋ ๊ฐ์ง์ ์คํฌ๋ฆฝํธ๋ ์๊ฐ์ด ํ๋ฅผ์๋ก ๋ฌ๋ผ์ ธ๊ฐ๊ณ ๋์ฑ ํผ๋์ ๊ฐ์คํ์ ECMA ์ธํฐ๋ด์ ๋์์ ์ด๋ฐ ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ํ ํ์ค์ ๋ด๋ฆฌ๊ฒ ๋ฉ๋๋ค.
์ด ๋ฟ๋ง ์๋๋ผ ๋ค๋ฅธ ํ์ค์๋ ์ ํ๊ธฐ ๋๋ฌธ์ ๊ทธ์ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ๋ค์ ์ซ์๋ฅผ ๋ถ์๋๋ฐ ๊ทธ๊ฒ์ด ๋ฐ๋ก ECMA262์ ๋๋ค. ์คํฌ๋ฆฝํธ ๊ธฐ์ ๊ท๊ฒฉ์ผ๋ก ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋ํ ํ์ค์ ์ ์ํ ๊ท์น์ ๋๋ค.
์คํฌ๋ฆฝํธ ์ธ์ด(Script Language) ๋?
๋ ๋ฆฝ๋ ์์คํ ์์ ์๋ํ๋๋ก ํน๋ณํ ์ค๊ณ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค. ์คํฌ๋ฆฝํธ ์ธ์ด์ ํน์ง์ผ๋ก๋ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ๋ ๋ ๋ฆฝ์ ์ด๊ณ ์ฌ์ฉ์๊ฐ ์ง์ ํ๋ก๊ทธ๋จ์ ์๋์ ๋ฐ๋ผ ๋์์ํฌ ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ์ฌ๊ธฐ์ ECMAScript๋ฅผ ์ฐ๊ฒฐ์ํฌ ์ ์์ต๋๋ค.
ECMA262 ๊ธฐ์ ๊ท๊ฒฉ์ ์ํด ์ ์ ๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฐ๋ก ECMAScript์ ๋๋ค. ์ซ์๊ฐ ๋ถ์ ๊ฒ์ด ํ์ค ์ด๋ฆ์ด์ง๋ง ํ๋์ ์ฌ์์ ๋ปํ๋ ๊ฒ์ด๊ณ . ECMAScript๋ ์คํฌ๋ฆฝํธ ์ธ์ด๊ฐ ์ค์ํด์ผํ๋ ๊ท์น, ์ธ๋ถ ์ฌํญ ๋ฑ์ ์ ๊ณตํฉ๋๋ค. ECMAScript๋ ๋ฌธ์๋ก ์์ฑ๋์ด ์์ต๋๋ค.
JavaScript(์๋ฐ์คํฌ๋ฆฝํธ) ๋?
์๋ฐ์คํฌ๋ฆฝํธ๋ ECMAScript ์ฌ์์ ์ค์ํ๋ ์คํฌ๋ฆฝํธ ์ธ์ด์ ๋๋ค. ECMAScript๋ฅผ ๋ณด๋ฉด ์ด๋ค ์คํธ๋ฆฝํธ ์ธ์ด๋ฅผ ๋ง๋ค ์ ์๊ณ ์, ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ๋ณด๋ฉด ์ด๋ค ์คํฌ๋ฆฝํธ ์ธ์ด๋ฅผ ์ธ ์ ์๋์ง๋ฅผ ์ ์ ์์ต๋๋ค. ์ฝ๊ฒ ์ด์ผ๊ธฐํด๋ณด์๋ฉด ์๋ฐ์คํฌ๋ฆฝํธ๋ ECMAScript์์ ํ์๋๊ฑฐ๋ผ๊ณ ๋ณด์๋ฉด ์ดํด๋ฅผ ๋์ธ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค. ECMAScript๋ ์คํ, JavaScript๋ ์ธ์ด!
ํ์๋๋ค๊ณ ํ๋ ํท๊ฐ๋ฆฌ์๊ฒ ์ง๋ง, ๋ค์ ํ๋ฒ ๋งํ์ง๋ง ๋ง๋ค์ด์ง ๊ฒ์ JavaScript๊ฐ ๋จผ์ ์
๋๋ค.
JavaScript ๊ฐ 1996๋
๋์ ๋ง๋ค์ด์ก๊ณ , ๊ทธ ๋ค์ ํด์ JavaScript ํ์คํ๋ฅผ ์ํด์ ECMAScript๊ฐ ๋ง๋ค์ด์ก์ต๋๋ค.
์๋ก๊ฐ ์๋ก๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ํผ์ฉ๋์ด ์ฌ์ฉ๋๋๊ฒ ์๋๊น ์ถ์ต๋๋ค.
โญ ES5 vs ES6 ๋ฌธ๋ฒ ์ฐจ์ด
ES6 ๋, ECMA262 ์ ์ 6ํ ์ ๋๋ค. ์ฌ์์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ ๋ฐ ๊ฐ์ ์ฌํญ์ ๋ช ์ธํฉ๋๋ค. ์ฑ ์ด ๊ฐ์ ํ์ด ๋์ค๋ฏ์ด ๊ณ์ ๋ฐ์ ํด๋๊ฐ๋ ๊ฑฐ์ฃ . ๋์์ด๋ก๋ ES2015, ECMAScript 2015 ๊ฐ ์์ต๋๋ค.
ES3 1999๋ ๋์ ๋์จ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋์ค์ ์ผ๋ก ์ ์ผ ๋ง์ด ์๋ ํํ์ ๋๋ค. ํจ์ ๋จ์์ ์ค์ฝํ, ํ๋กํ ํ์ , ํด๋ก์ ๋ฑ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ธฐ๋ณธ์ด ๋๋ ๊ฒ๋ค์ด ๋ด๊ฒจ์์ต๋๋ค.
ES5๋ 2009๋ ์ ๋์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก IE9๋ถํฐ ์ง์์ ํฉ๋๋ค.
์ด ๋ ๋ค์ํ ๊ฒ๋ค์ด ๋ง์ด ๊ฐ์ ๋์๋๋ฐ์.
- ๋ฐฐ์ด๊ณผ ๊ด๋ จํด์ ์๋ก์ด ๋ฉ์๋๋ค์ด ๋ง์ด ์๊ฒผ์ต๋๋ค. forEach, map, filter, reduce ๋ฑ ๋ฐ๋ณต ์ํํ๋ ๋ฉ์๋๋ค์ด ์๊ฒผ๊ณ ์.
- ๊ฐ์ฒด์ ํ๋กํผํฐ๋ฅผ ์ค์ ํ ์ ์๋ค๋ ๊ฒ์ด ํฐ ๋ณํ์์ต๋๋ค. ๊ฐ์ฒด๋ฅผ ์์ฑ/์์ /๋ณต์ฌํ๋ ํ์ค ๋ฉ์๋๋ค(Object.create(), Object.defineProperty(), Object.freeze(), Object.assign() ๋ฑ๋ฑ)๊ณผ getter/setter ๋ฑ Object.keys ๋ฉ์๋๋ฅผ ์ฐ๋ฉด for in ๋ฉ์๋๋ ๋์ฒดํ ์ ์๊ฒ ๋ฉ๋๋ค.
- strict ๋ชจ๋๋ ์ด๋ ํ์ํ์ต๋๋ค. ๋ฌธ๋ฒ์ ๋ง๊ทธ๋๋ก stric ํ๊ฒ ์ฒดํฌํ๋ ๋ชจ๋์ ๋๋ค. ์ฝ๋์ ์์ ํ๋ฅผ ์ํด์ ๋ฑ์ฅํ์ต๋๋ค.(์๋ฌ๋ฐฉ์ง)
- bind()๋ฉ์๋ – ์ด๊ฑด this ๋์ ์ ์ธ ์ ์๋ ๋ฉ์๋์ ๋๋ค. ์ด๋ค ํจ์๋ฅผ ์๋ก ์จ์ผํ ๋~ ์ ์ฉํ์ฃ
- JSON(JavaScript Object Notation)
XMLํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ผ๋ก JSON์ผ๋ก ๊ฒฝ๋ํ ๋์์ต๋๋ค.
ES6๋ก ๋์ด์ค๋ฉด์๋ ๋ง์ ๊ฒ๋ค์ด ๋ณํํ์ต๋๋ค.
- const, let์ ๋ฑ์ฅ๊ณผ ํจ์ ๋จ์ ์ค์ฝํ์์ ๋ธ๋ก ๋จ์ ์ค์ฝํ๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค
var ์ด๋ผ๋ globalํ ๋ณ์ ํค์๋๋ฅผ ์ผ์๋๋ฐ, const์ let์ด ๋ฑ์ฅํ๊ณ ๋ธ๋ก ๋จ์ ์ค์ฝํ๋ก ๋ณํ๋ฉด์ ๋ณ์๋ฅผ ์ ์ธํ ๋ ๋ค์ด๋ฐ๋๋ฌธ์ ํผ๋์ ๋น๋ ์ผ์ด ์ ์ด์ก์ต๋๋ค. const๋ ์์๋ฅผ ์ ์ธ ํ ๋, ์ ์ธ๊ณผ ๋์์ ํ ๋น์ ๋ฌด์กฐ๊ฑด ํด์ผํ๊ณ let์ var๊ณผ ๊ฑฐ์ ๊ฐ์๋ฐ ๋จ์๊ฐ ๋ธ๋ก์ผ๋ก ๋ฐ๊ผ๋ค๋ ์ ๋ง ๋ค๋ฅด๋ต๋๋ค - ํ์ดํ ํจ์์ ๋ฑ์ฅ. ์ ๋ก์ฐ ํ์ ์ผ๋ก ํธ์ถํ ์ ์์ต๋๋ค.
- Promise์ ๋ฑ์ฅ
- Default, Rest ํ๋ผ๋ฏธํฐ
- Spread ์ฐ์ฐ์ ๋ฑ์ฅ
์ดํ์ ๋ ES7 -10 ๊น์ง ๊พธ์คํ๊ณ ๋์ค๊ณ ์์ต๋๋ค
ES7์์๋ ์ ๊ณฑ์ด ๊ฐํธํด์ง๊ณ ~ ** ์ด๊ฒ ์ ๊ณฑ์ ๋ปํฉ๋๋ค
ES8๋ padStart() ๋ฉ์๋ ๋ฑ์ฅ์ผ๋ก ์ / ๋ค ์์ ์ด ํธํด์ง๊ณ , entries() ๊ฐ์ฒด๋ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ ์ ์๊ณ , values()๋ง ์กฐํ๋ ๊ฐ๋ฅํฉ๋๋ค
ES9๋ rest , spread – ๋ฐฐ์ด์ ํด์ฒดํ๋ ๊ฒ์ฒ๋ผ ๊ฐ์ฒด๋ ํด์ฒด ํ ์ ์๊ฒ ๋ฉ๋๋ค. Promise์ then,catch ์ธ์๋ finally๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. promise ์ฑ๊ณต, ์คํจ ์ฌ๋ถ์ ์๊ด์์ด ๋ฌด์กฐ๊ฑด ์คํ์์ผ์ฃผ๋ ๋ฉ์๋์ ๋๋ค
ES10๋ flat()์ผ๋ก ์ค์ฒฉ๋ ๋ฐฐ์ด ์ ๊ฑฐ๋ ๊ฐ๋ฅ! ๋ฐ์ดํฐ ์ ๋ฆฌ๋ ํ ์ ์์ต๋๋ค
๐ ํ๊ณ
ํญํด99 ํฉ๋ฅํ๊ธฐ ์ ๋ถํฐ ๊พธ์คํ๊ฒ ๊ณต๋ถํ๋๊ฒ ๋ต์ด๋ผ๋ ์๊ฐ์ ์กฐ๊ธ์ฉ ํ์ด๋ณด๊ณ ์๋ ํ๋ก๊ทธ๋๋จธ์ค. ์๊ณ ๋ฆฌ์ฆ ์ฃผ์ฐจ์์ ๋ณด๊ฒ ๋ ์ค์ ๋ชฐ๋๋๋ฐ, ๋ฌธ์ ๊ฐ ๊ธธ์ด์ง๋ค ์ถ์ผ๋ฉด ํผํ๋ ๋ฌธ์ ๋ ์ด์ ๋ ๋น๋นํ๊ฒ ๋ง์์ ์ฝ์ด๋ณด๊ณ ์๊ฐ์ด๋ผ๋ ๊ฑธ ํ ์ ์๊ฒ ๋ ๊ฒ ๊ฐ๋ค. ๊ทธ์ ํผ๊ณ ์ถ๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์ ๋ํ ์์ ๊ฐ๋ ์๊ฒผ๊ณ , ์ญ์๋ ๋ค์ ํ๋ฒ ๊พธ์คํ ๊ณต๋ถ๋ฅผ ํด์ค์ผ ๊ฐ์ ์์ง ์๊ณ ๋ฉ์๋๋ ๋ก์ง์ ๋ํ ์ดํด๋๋ ๊น์ด์ง๊ณ ๋นจ๋ผ์ง๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ๊ฐ์ด ๊ณต๋ถํ๋ ๋ถ๋ค์ด ํจ๊ป ํ๋ฃจ์ ํ ๊ฐ์ฉ์ด๋ผ๋ ํ์๊ณ ํด์ ๊ทธ๋ฃน์ผ๋ก ๊ณต๋ถํด๋ ๋๋ฌด ์ข์ ๊ฒ ๊ฐ๋ค.