๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ
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'