spread-operator-rest-param

Spread Operator

์˜ˆ์‹œ๋กœ ํ™•์ธํ•˜์Ÿˆ 'ใ…'/

containing array

const featured = ['Deep dish', 'Peperoni', 'Hawaiian'];
const specialty = ['Meatzza', 'Spicy Nama', 'Margherita'];
const pizas = featured.concat(specialty);

console.log(pizas); // ["Deep dish", "Peperoni", "Hawaiian", "Meatzza", "Spicy Nama", "Margherita"]

๋งŒ์•ฝ ์ค‘๊ฐ„์— ๋˜ ๋‹ค๋ฅธ ์ถ”๊ฐ€๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด?

const featured = ['Deep dish', 'Peperoni', 'Hawaiian'];
const specialty = ['Meatzza', 'Spicy Nama', 'Margherita'];

let pizzas = [];
pizzas = pizzas.concat(featured);
pizzas.push('veg');
pizzas = pizzas.concat(specialty);
console.log(pizzas); // ["Deep dish", "Peperoni", "Hawaiian", "veg", "Meatzza", "Spicy Nama", "Margherita"]

ํ•˜์ง€๋งŒ spread operator๋ฅผ ์“ด๋‹ค๋ฉด!

:open_mouth: ์—„์ฒญ๋‚˜๊ฒŒ ๊น”๋”ํ•ด์กŒ๋‹ค! :open_mouth:

Array copy

Array๋Š” ์ฐธ์กฐ๊ฐ’์ด ๋ณต์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กญ๊ฒŒ ๋ณต์‚ฌํ•œ fridayPizzas ๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด pizzas๋„ ๊ฐ™์ด ์ˆ˜์ •๋œ๋‹ค.

true copy 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•

์ด 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, reference ํ•œ๊ฒŒ ์•„๋‹ˆ๋ผ ์›์†Œ๋“ค์„ ๋ณต์‚ฌ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€, ์ˆ˜์ •ํ•˜์—ฌ๋„ pizzas๊ฐ€ ์ˆ˜์ •๋˜์ง€ ์•Š๋Š”๋‹ค.

proto : NodeList => Array

spread operator๋ฅผ ํ†ตํ•ด NodeList ๋„ Array๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.

spread operator + string

์ œ์™ธ ์‹œํ‚ค๊ธฐ

call, apply ๋Œ€์‹  ์‚ฌ์šฉํ•˜๊ธฐ

apply์˜ ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ€ ์ดํ•ด๊ฐ€ ์•ˆ๋˜์–ด ๋” ์ฐพ์•„ ๋ณด์•˜๋‹ค.

apply๋Š” argsArray ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์œ„ํ•œ arguments๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

apply์˜ ๋‘๋ฒˆ์งธ ์ธ์ž๋กœ๋Š” array๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด ์ ์„ ์ด์šฉํ•ด ๋‘๋ฒˆ์งธ ์ธ์ž์— ๋ฐฐ์—ด์„ ๋ณด๋‚ด๊ณ  push๊ฐ€ ์‹คํ–‰๋  ๋•Œ์—๋Š” ๋ฐฐ์—ด์ด ํ’€๋ฆฐ๋‹ค. ์ด์ ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๊ธฐ์ €๊ธฐ์— ์“ฐ์ธ๋‹ค.

MDN ์˜ˆ์‹œ - ๋‚ด์žฅํ•จ์ˆ˜ ์‚ฌ์šฉ

๋‹ค์‹œ ๋ณด์ž

this๋ถ€๋ถ„์— null๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ์ƒ์„ฑ์žํ•จ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ผ ์ง์ ‘์ ์ธ ๋„ค์ž„์„ ๊ฐ€์ง„ inventors์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•ด์„œ ์•„๋‹๊นŒ? ๊ทธ ๋‹ค์Œ์€ ์ธ์ž๋ฅผ ๋ฐฐ์—ด๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— array๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

๋!

์œ„์˜ MDN์˜ˆ์‹œ๋„ ์‰ฝ๊ฒŒ ์ •๋ฆฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ •๋ง ๋Œ€๋‹จํ•˜๋‹ค.. :open_mouth:

Spreading into a function

Rest Param

๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋ฆฌ์— ์“ด๋‹ค. ๋‚˜๋จธ์ง€ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค.

+ spread operator

Last updated

Was this helpful?