๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ—‚ WIL/๐Ÿ“ JavaScript

โœ๏ธ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น

by nalong 2022. 8. 10.

๐Ÿ“… ๋ณธ ๊ธ€์€ 2022๋…„ 5์›” 1์ผ ๊ฐœ์ธgithub ์— ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค.

๐Ÿš€ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น

๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด ์ž˜ ๋ชจ๋ฅด๊ณ  ์žˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด์ž!
โš ๏ธ mdn, ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌ๋œ ๋‚ด์šฉ๋“ค์„ ์ง์ ‘ ์‹คํ–‰ํ•ด๋ณด๋ฉฐ ์ตํ˜€๋‚˜๊ฐ€๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณต๋ถ€ํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ถœ์ฒ˜๋Š” ๊ธ€ ํ•˜๋‹จ์— ๊ธฐ์žฌํ•˜์˜€์Šต๋‹ˆ๋‹ค.

๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์ด๋ž€?

๋น„๊ตฌ์กฐํ™” ํ• ๋‹น ๊ตฌ๋ฌธ์€ ๋ฐฐ์—ด์ด๋‚˜ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ทธ ๊ฐ’์„ ๊ฐœ๋ณ„ ๋ณ€์ˆ˜์— ๋‹ด์„ ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ‘œํ˜„์‹!

โœ…  ๋ฐฐ์—ด

let [a, b, c, ...f] = [1, 2, 3, 4, 5];
console.log(a); // 1
console.log(b); //2
console.log(c); // 3
console.log(f); // [4,5] ์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‚˜๋จธ์ง€ ๋ฐฐ์—ด ๊ฐ’ ํ• ๋‹น
const array = [1, 2, 3, 4, 5];
const [x, y, , , z] = array;
console.log(x); //1
console.log(y); //2
console.log(z); //5
const array = [1, 2, 3, 4, 5];
const [a, b, , , c, d] = array; // ์ „๊ฐœ ์—ฐ์‚ฐ์ž ์ดํ›„์— ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ
[a1, a2, ...rest_a] = { a1: 10, a2: 20 }; // error ์ขŒ, ์šฐํ•ญ์ด ๋‹ค๋ฅธ ์†์„ฑ์ผ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ.
const array = [1];
const [one, two] = array;
console.log(one); // 1
console.log(two); // undefined
// ๊ธฐ๋ณธ๊ฐ’ ์ง€์ • ๊ฐ€๋Šฅ
const array = [1];
const [one, two = 2] = array;
console.log(one); // 1
console.log(two); // 2

โœ…  ๊ฐ์ฒด

const { 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 }

๐Ÿ”Ž ์›๋ž˜์˜ ํ‚ค ๊ฐ’๊ณผ ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•!

const { a1: a, a2: b, ...c } = { a1: 10, a2: 20, a3: 30, a4: 40 };
console.log(a); // 10
console.log(b); // 20
console.log(a1); // Error : a1 is not defined

โœ…  ๋น„๊ตฌ์กฐํ™” ํ• ๋‹นํ•  ๋•Œ ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ

const animal = {
  name: '๋ฉ๋ฉ์ด',
  type: '๊ฐœ',
};
const { name: nickname } = animal;
console.log(nickname); // ๋ฉ๋ฉ์ด

โœ…  ํ•จ์ˆ˜์—์„œ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น!

const object = { a: 1, b: 2 };
function print({ a, b }) {
  console.log(a); // 1
  console.log(b); // 2
}
print(object);
const object = { a: 1 }; // ๊ธฐ๋ณธ๊ฐ’ ์„ค์ •
function print({ a, b = 2 }) {
  console.log(a);
  console.log(b);
}
print(object);
// 1
// 2
function renderUser({ name, age, addr }) {
  console.log(name);
  console.log(age);
  console.log(addr);
}
const users = [
  { name: 'kim', age: 10, addr: 'kor' },
  { name: 'joe', age: 20, addr: 'usa' },
  { name: 'miko', age: 30, addr: 'jp' },
];
users.map((user) => {
  renderUser(user);
});

 

โš ๏ธ ์ด๋ฏธ ํ•œ๋ฒˆ ์ •๋ฆฌ ํ•˜์˜€์ง€๋งŒ, ๋ฐฐ์—ด ,๊ฐ์ฒด์˜ ๊นŠ์€ ๋ณต์‚ฌ! ๋ฅผ ํ• ๋•Œ ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์„ ์ด์šฉํ•œ๋‹ค!

2022.08.10 - [๐Ÿ—‚ WIL/๐Ÿ“ JavaScript] - ์–•์€ ๋ณต์‚ฌ, ๊นŠ์€ ๋ณต์‚ฌ

 

์–•์€ ๋ณต์‚ฌ, ๊นŠ์€ ๋ณต์‚ฌ

๐Ÿ“… ๋ณธ ๊ธ€์€ 2022๋…„ 4์›” 8์ผ ๊ฐœ์ธgithub ์— ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ๐Ÿš€ ์–•์€ ๋ณต์‚ฌ, ๊นŠ์€ ๋ณต์‚ฌ ํŒ€ ํ”„๋กœ์ ํŠธ๋•Œ ์‚ฌ์šฉํ–ˆ๋˜ ๋…ธ์…˜์„ ์ •๋ฆฌํ•˜๋‹ค๊ฐ€ ๋ฐœ๊ฒฌํ•œ ๋ฌผ์Œํ‘œ ๊ฐ€๋“ํ•œ ์ œ๋ชฉ์˜ ๊ธ€.. ์•„์‰ฝ๊ฒŒ๋„ ์ œ๋ชฉ๋งŒ ์ ํ˜€์ ธ์žˆ๋‹ค.

nayeon-zip.tistory.com

let arr = [1, 2, 3];
let copy1 = arr;
let [...copy2] = arr;
let 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 ]

๐Ÿ–‡ Reference

https://yuddomack.tistory.com/entry/%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EB%AC%B8%EB%B2%95-%EB%B9%84%EA%B5%AC%EC%A1%B0%ED%99%94-%ED%95%A0%EB%8B%B9
https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-%EB%B9%84%EA%B5%AC%EC%A1%B0%ED%99%94%EA%B5%AC%EC%A1%B0%EB%B6%84%ED%95%B4-%ED%95%A0%EB%8B%B9