๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Web Programming/JavaScript

[JavaScript] ES6 ๋ฌธ๋ฒ•์„ ๊ฐ„๋‹จํžˆ ์ •๋ฆฌํ•ด๋ณด์ž.

by Haren 2022. 11. 25.


๐Ÿ‘€ ๊ฐ‘์ž๊ธฐ ์ด๋Ÿฐ๊ฑธ ์ •๋ฆฌํ•˜๋Š” ์ด์œ 

์ตœ๊ทผ Udemy์—์„œ React.js ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ์žˆ๋‹ค๊ณ  ๋ธ”๋กœ๊ทธ์— ํ•œ ๋‘ ๋ฒˆ ๊ฑฐ๋ก ํ–ˆ๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๊ทธ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ์ ˆ์‹คํžˆ ๋Š๊ปด์ง€๋Š” ๊ฒƒ์ด ๊ธฐ๋ณธ๊ธฐ์˜€๊ณ , ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๋ ค ์ด๋Ÿฐ์ €๋Ÿฐ ๋ฐฉ๋ฉด์œผ๋กœ ๋…ธ๋ ฅ์„ ํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ ์ค‘ ๋ฆฌ์•กํŠธ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ์— ์žˆ์–ด์„œ ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ด๊ณ  ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ด '์ฐจ์„ธ๋Œ€ JavaScript ๋ฌธ๋ฒ• (ES6)'์ด๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋™์˜์ƒ ๊ฐ•์˜๋ฅผ ๋น„๋กฏํ•ด์„œ ๊ตฌ๊ธ€์„ ๋Œ์•„๋‹ค๋‹ˆ๊ธฐ๋„ ํ•˜๊ณ , ์ฑ…๋„ ์ฝ์–ด๊ฐ€๋ฉฐ ๋‚˜๋ฆ„๋Œ€๋กœ ์ •๋ฆฌํ•ด ๋ณธ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์—๋„ ํฌ์ŠคํŒ…์„ ํ•ด๋†“์•„์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด์„œ ์ด๋ ‡๊ฒŒ ๊ฐ‘์ž‘์Šค๋Ÿฝ๊ฒŒ ES6์˜ ํ•ต์‹ฌ์ ์ธ ๋ฌธ๋ฒ•๋“ค์„ ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ถ€์กฑํ•œ ๋‚ด์šฉ๋„ ์žˆ๊ณ , ์•„์ง์€ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ์ž˜ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์ž˜์€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ํ˜น์‹œ๋ผ๋„ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด, ๋” ๋ง๋ถ™์—ฌ์•ผ ํ•  ๋ถ€๋ถ„์ด ์žˆ๋‹ค๋ฉด ๋ถ€๋‹ด๊ฐ–์ง€ ๋ง๊ณ  ๋Œ“๊ธ€๋กœ ์กฐ์–ธ์„ ํ•ด๋‹ฌ๋ผ๊ณ  ๋ถ€ํƒ๋“œ๋ฆฌ๊ณ  ์‹ถ๋‹ค.

 


let๊ณผ const, ์ƒˆ๋กญ๊ฒŒ ๋ณ€์ˆ˜์™€ ์ƒ์ˆ˜๋ฅผ ์„ ์–ธํ•˜๊ณ  ์ •์˜ํ•˜๊ธฐ

var

๊ธฐ์กด JavaScript์—์„œ๋Š” ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์ด var ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์„ ์–ธํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ var์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜์˜ ์ค‘๋ณต ํ• ๋‹น ๋ฌธ์ œ์—์„œ ์ž์œ ๋กญ์ง€ ๋ชปํ•˜๋‹ค.

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ console์— ์ฐํžˆ๋Š” ๊ฐ’์€ ๋งจ ์ฒ˜์Œ ํ• ๋‹นํ•œ ๊ฐ’์ธ 1์ด ์•„๋‹Œ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์˜๋ฏธ์—†์ด 10๋ฒˆ์ด๋‚˜ ํ• ๋‹นํ•œ 2๋‹ค.

let

ES6 ๋ฌธ๋ฒ•์ธ let ํ‚ค์›Œ๋“œ ๋ณ€์ˆ˜ ์„ ์–ธ์€ ์ด๋Ÿฐ ์ค‘๋ณต ํ• ๋‹น ๋ฌธ์ œ์—์„œ ์ž์œ ๋กญ๋‹ค.

์œ„์™€ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰์กฐ์ฐจ ๋˜์ง€ ์•Š๊ฑฐ๋‚˜ JSBin์—์„œ๋Š” ์ฒ˜์Œ ํ• ๋‹น๋œ ๊ฐ’์ธ 1์ด console์— ์ถœ๋ ฅ๋œ๋‹ค.

Const

const ํ‚ค์›Œ๋“œ๋Š” Kotlin๊ณผ Python ๊ฐ™์ด ๋น„๊ต์  ํƒ€์ž… ์ถ”๋ก ์ด ๊ฐ•๋ ฅํ•œ ์–ธ์–ด๋“ค์—์„œ ์“ฐ์ด๋Š” val ํ‚ค์›Œ๋“œ์™€ ์œ ์‚ฌํ•˜๊ฒŒ '์ƒ์ˆ˜'์˜ ๊ฐœ๋…์ด๋‹ค.

const ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์„ ์–ธ๋œ ์ƒ์ˆ˜๋Š” ํ• ๋‹น๋œ ๊ฐ’์„ ์ถ”ํ›„์— ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.

ES6์—์„œ๋Š” ํ›„์ˆ ํ•  ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ํ•จ์ˆ˜ ๋˜ํ•œ const ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ƒ์ˆ˜๋กœ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜ (Arrow Function)

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜์˜ ์šฉ๋ฒ•์€ ๋ณ„๋„๋กœ ํฌ์ŠคํŒ…์„ ๋จผ์ € ํ•ด๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งํฌ๋กœ ๋Œ€์ฒดํ•˜๊ฒ ๋‹ค. ๋จธ์“ฑ... ^^;;;

 

[JavaScript] ํ™”์‚ดํ‘œ ํ•จ์ˆ˜(Arrow Function) ๊ธฐ๋ณธ ์šฉ๋ฒ• ์ •๋ฆฌ

๐Ÿง ์™œ ๊ฐ‘์ž๊ธฐ JavaScript ํฌ์ŠคํŒ…์„ ํ•˜๋‚˜์š”? ์›น FE ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€๋ฐ, JS๋ฅผ ํฌํ•จํ•˜์—ฌ ํ•„์š”ํ•œ ๊ธฐ์ˆ ๋“ค์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ํ•™์Šต ์ˆ˜์ค€์ด ๋ถ€์กฑํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ ๋ฐ๋ฏธ, ์ฝ”์„ธ๋ผ ๋“ฑ๋“ฑ... ํ•™์Šต

heibondk.tistory.com

๋Œ€์‹ ์— ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๊ฐ€ ๊ฐ–๋Š” ํŠน์ง•์„ ์ด๊ณณ์— ๋”ฐ๋กœ ์ •๋ฆฌํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜ (Anonymous function) ๋‹ค.

์ต๋ช… ํ•จ์ˆ˜๋ž€ ํ•จ์ˆ˜๋ช… ๋Œ€์‹  ๋ณ€์ˆ˜(์ƒ์ˆ˜)๋ช…์— ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ตฌํ˜„ ๋ฐฉ์‹์ด๋‹ค.

์ต๋ช… ํ•จ์ˆ˜์˜ ์†Œ์Šค ์ฝ”๋“œ๋Š” ๋ณ€์ˆ˜(์ƒ์ˆ˜)๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์— ๋์— ์„ธ๋ฏธ์ฝœ๋ก ์„ ๋Œ€์ž…ํ•˜์—ฌ์•ผ ํ•œ๋‹ค.

์ต๋ช… ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ์—๋Š” ๋ณ€์ˆ˜๋ช…์„ ํ•จ์ˆ˜๋ช…์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” const, let ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ช…์— ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•˜๋ฏ€๋กœ ์ต๋ช… ํ•จ์ˆ˜๋‹ค.

ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๊ฐ€ ์ œํ•œ๋˜๋Š” ๊ฒฝ์šฐ

  • ๋ฉ”์†Œ๋“œ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ
  • ์ƒ์„ฑ์ž๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ ๋“ฑ

 

Array / Object Destructuring (๋ฐฐ์—ด / ๊ฐ์ฒด์˜ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น)

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง

๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง์€ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ํ˜น์€ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

๊ธฐ์กด์— ์„ ์–ธ ๋ฐ ํ• ๋‹น๋˜์–ด ์žˆ๋˜ ๋ฐฐ์—ด ๋ฐ ๊ฐ์ฒด์˜ ์š”์†Œ(ํ”„๋กœํผํ‹ฐ)๋ฅผ ๋‹ค๋ฅธ ๋ฐฐ์—ด ํ˜น์€ ๋ณ€์ˆ˜, ๊ฐ์ฒด๋กœ ์˜ฎ๊ธธ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง์˜ ๊ธฐ๋ณธ ์šฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.

๋ฐฐ์—ด์„ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹นํ•˜๋Š” ์˜ˆ์ œ์ด๋‹ค. ๊ธฐ์กด์— ์„ ์–ธ ๋ฐ ํ• ๋‹น๋˜์–ด ์žˆ๋Š” arry ๋ฐฐ์—ด์˜ ์š”์†Œ 1, 2, 3 ์ค‘ ์ฒซ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ƒ์ˆ˜ one, three์— ๋‹ด๊ณ  2๋Š” ์•„๋ฌด๋ฐ๋„ ํ• ๋‹นํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง ์‹œ์—๋Š” ๊ธฐ์กด ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค๋ฅผ ๋™์ผํ•˜๊ฒŒ ์„ค์ •ํ•˜์—ฌ ํ• ๋‹นํ•ด์ฃผ์–ด์•ผ ํ•˜๋ฉฐ, ํ• ๋‹น๋ฐ›์ง€ ์•Š์„ ๋ถ€๋ถ„์€ ์ฝค๋งˆ(,)๋กœ ๋น„์›Œ์ฃผ๋ฉด ๋œ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋ฉด ๊ธฐ์กด์˜ ๋ฐฐ์—ด์˜ ์š”์†Œ๋Š” 2๊ฐœ์ด๊ณ , ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋ฉฐ ํ• ๋‹นํ•˜๊ณ  ์‹ถ์€ ๋ณ€์ˆ˜๋Š” 3๊ฐœ๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, ์–ด๋–ป๊ฒŒ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๊ทธ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 

๋ฐฐ์—ด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง์€ React.js์˜ Hook ์ค‘ ํ•˜๋‚˜์ธ useState๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‰ฝ๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•์ด๋‹ค.

๊ฐ์ฒด ๋””์ŠคํŠธ๋Ÿญ์ฒ˜๋ง

๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์€ ๋ฐฐ์—ด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐ์ฒด์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด์˜ ํŠน์ • ํ”„๋กœํผํ‹ฐ๋งŒ์„ ๋นผ์˜ฌ ๋•Œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

human ๊ฐ์ฒด๋Š” name ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด 'Taeun', age ํ”„๋กœํผํ‹ฐ์˜ ๊ฐ’์ด 22๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น๊ณผ ๋™์ผํ•˜๊ฒŒ ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น ๋˜ํ•œ ํ”„๋กœํผํ‹ฐ์˜ ์ˆœ์„œ์— ๋งž๊ฒŒ ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น์„ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

Spread & Rest

์Šคํ”„๋ ˆ๋“œ์™€ ๋ ˆ์ŠคํŠธ๋Š” '์—ฐ์‚ฐ์ž'์ด๋ฉฐ ์  ์„ธ ๊ฐœ๋กœ ํ‘œํ˜„๋œ๋‹ค. ...

๋™์ผํ•œ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์Šคํ”„๋ ˆ๋“œ์™€ ๋ ˆ์ŠคํŠธ๋Š”

Spread

์Šคํ”„๋ ˆ๋“œ๋Š” ๋ฐฐ์—ด์˜ ์›์†Œ๋‚˜ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ฐ์— ์‚ฌ์šฉํ•œ๋‹ค. ์ข€ ๋” ๊ฐ„๋‹จํžˆ ๋งํ•˜์ž๋ฉด 'spread'์˜ ๋œป๊ณผ ๊ฐ™์ด ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด๋ฅผ ํŽผ์ณ๋†“๋Š” ์ด๋ฏธ์ง€๋กœ ์ƒ๊ฐํ•˜๋ฉด ์‰ฝ๋‹ค.

์˜ˆ์ œ๋Š” ์ค€๋น„ํ•˜์ง€ ๋ชปํ–ˆ์ง€๋งŒ ๋ฐฐ์—ด ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ์ฒด์˜ ํ”„๋กœํผํ‹ฐ๋„ ์œ„์™€ ๊ฐ™์ด ๋ณต์‚ฌํ•ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

Rest

๋ ˆ์ŠคํŠธ ์—ฐ์‚ฐ์ž๋Š” ํ•จ์ˆ˜์˜ ์ธ์ˆ˜ ๋ชฉ๋ก์„ ๋ฐฐ์—ด๋กœ ํ•ฉ์น˜๋Š” ๋ฐ์— ์‚ฌ์šฉํ•œ๋‹ค. 

sortArgs() ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฌดํ•œํžˆ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. 1๊ฐœ ์ด์ƒ์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋“ค์–ด์˜จ๋‹ค๋ฉด ๋ชจ๋‘ ๋ฐฐ์—ด๋กœ ํ†ตํ•ฉ๋˜์–ด ํ•จ์ˆ˜ ๋‚ด์—์„œ ๋ฐฐ์—ด ๋งค๊ฐœ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๋ฐฐ์—ด ๋ฉ”์†Œ๋“œ๋ฅผ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ๋‚ด๊ฐ€ ๊ณต๋ถ€ํ•œ React.js๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ์•Œ์•„๋‘๋ฉด ์ข‹์„๋งŒํ•œ ES6 ๋ฌธ๋ฒ• ์ •๋ฆฌ๋‹ค. ์ด๋ฆฌ์ €๋ฆฌ ๋งŽ์€ ์ž๋ฃŒ๋ฅผ ๋ณด๊ณ  ๋‚ด ๊ฒƒ์œผ๋กœ ๋งŒ๋“ ๋‹ค๊ณ  ํ–ˆ์œผ๋‚˜ ์•„์ง๋„ ์„ค๋ช…ํ•˜๋ผ๋ฉด ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์ด ๋” ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๊ธฐ๋ณธ๊ธฐ๋ฅผ ๋‹ค์ง€๊ธฐ ์œ„ํ•ด ์‹œ์ž‘ํ•œ ๊ณต๋ถ€์ด๋‹ˆ๋งŒํผ ํ™•์‹คํžˆ ๋‚ด๊ฒƒ์œผ๋กœ ๋งŒ๋“ค๋ฉด ์ข‹์„ํ…๋ฐ. ํ˜น์‹œ๋‚˜ ๋ถ€์กฑํ•œ ์„ค๋ช…์ด ์žˆ๋‹ค๋ฉด ๋ถ€๋”” ๋Œ“๊ธ€๋กœ ์•Œ๋ ค์ฃผ์‹œ๊ธฐ๋ฅผ ๋ถ€ํƒ๋“œ๋ฆฐ๋‹ค. ๋‚˜ ์Šค์Šค๋กœ๋„ ๋” ๊ณต๋ถ€๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•  ๋•Œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๊บผ๋‚ด ๋ณด๊ณ  ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ๋ฉ”๊ฟ€ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ๊ฒ ๋‹ค.