MellowHoney 2024. 4. 7. 14:09
728x90
๋ฐ˜์‘ํ˜•

( … )

๐Ÿ“Ž ๋ฐฐ์—ด [], ํ˜น์€ ๊ฐ์ฒด {} ์•ˆ์˜ ๊ฐ’์„ ํŽธํ•˜๊ฒŒ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ๋Š” ๋ฌธ๋ฒ•
  • ์ „๊ฐœ ์—ฐ์‚ฐ์ž
  • ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น(destructuring assignment) ๊ตฌ๋ฌธ
  • JavaScript ํ‘œํ˜„์‹

๋ฐฐ์—ด์—์„œ์˜ ์ ์šฉ

[a1, a2, ...rest_a] = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(a1); // 1
console.log(a2); // 2
console.log(rest_a); // [3, 4, 5, 6, 7, 8, 9]
  • ์ขŒํ•ญ์ด ํ˜ธ์ถœ๋  ๋ณ€์ˆ˜๋ช… ์ง‘ํ•ฉ, ์šฐํ•ญ์ด ํ• ๋‹นํ•  ๊ฐ’
  • ์ขŒํ•ญ์˜ ๊ฐ ์š”์†Œ์—๋Š” ๊ฐ™์€ index๋ฅผ ๊ฐ€์ง€๋Š” ๋ฐฐ์—ด๊ฐ’์ด ํ• ๋‹น
  • ์ „๊ฐœ ์—ฐ์‚ฐ์ž( ... )๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ขŒํ•ญ์—์„œ ๋ช…์‹œ์ ์œผ๋กœ ํ• ๋‹น๋˜์ง€ ์•Š์€ ๋‚˜๋จธ์ง€ ๋ฐฐ์—ด ๊ฐ’๋“ค์„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
โš ๏ธ ์ „๊ฐœ ์—ฐ์‚ฐ์ž ์ดํ›„์— ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜, ์ขŒ ์šฐํ•ญ์ด ๋‹ค๋ฅธ ์†์„ฑ์ผ ๊ฒฝ์šฐ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ

๊ฐ์ฒด์—์„œ์˜ ์ ์šฉ

var { a1, a2, ...rest_a } = { a1 : 10, a2 : 20, a3 : 30, a4 : 40 };
console.log(a1); // 10
console.log(a2); // 20
console.log(rest_a); // { a3: 30, a4: 40 }
  • ์šฐํ•ญ์˜ key ๊ฐ’์ด ์ขŒํ•ญ์˜ ๋ณ€์ˆ˜๋ช…๊ณผ ๋งค์นญ
โš ๏ธ ๋ณ€์ˆ˜ ์„ ์–ธ์— ๋Œ€ํ•œ ๋ช…์‹œ(var, let, const)๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๊ด„ํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌถ์–ด์ฃผ์–ด์•ผ ํ•œ๋‹ค

๋ณต์‚ฌ

var arr = [1,2,3];
var copy1 = arr;
var [...copy2] = arr;
var copy3 = [...arr];

arr[0] = 'String';
console.log(arr); // [ 'String', 2, 3 ]
console.log(copy1); // [ 'String', 2, 3 ]
console.log(copy2); // [ 1, 2, 3 ]
console.log(copy3); // [ 1, 2, 3 ]
  • ์–•์€ ๋ณต์‚ฌ์ธ copy1์€ arr์„ ์ฐธ์กฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— 0๋ฒˆ ์š”์†Œ๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ์ง€๋งŒ ์ „๊ฐœ ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•œ copy2, copy3๋Š” ๊นŠ์€ ๋ณต์‚ฌ๊ฐ€ ๋จ.
var prevState = {
  name: "yuddomack",
  birth: "1996-11-01",
  age: 22
};

var state = {
  ...prevState,
  age: 23
};

console.log(state); // { name: 'yuddomack', birth: '1996-11-01', age: 23 }
  • ๋ณต์‚ฌ์™€ ํ•จ๊ป˜ ์ƒˆ๋กœ์šด ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•