๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด

์ด์ค€์„ยท2024๋…„ 3์›” 22์ผ

๊ฐœ๋… ์ •๋ฆฌ

๋ชฉ๋ก ๋ณด๊ธฐ
4/11

๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ๊ฐ์ฒด ๊ตฌ์กฐ ๋ถ„ํ•ด

  • ๊ฐ์ฒด ๊ตฌ์กฐ๋ถ„ํ•ด(Object Destructuring)๋Š” JavaScript์—์„œ ๊ฐ์ฒด์˜ ์†์„ฑ์„ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ์ถ”์ถœํ•˜์—ฌ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๋ฌธ๋ฒ•์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ๋ฒ•์€ ES6(ES2015)์—์„œ ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ, ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ์†์„ฑ์„ ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•˜์—ฌ ํ•ด๋‹น ๊ฐ’์„ ๋ณ€์ˆ˜๋กœ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๋„ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ํ• ๋‹น

var o = { p: 42, q: true };
var { p, q } = o;

console.log(p); // 42
console.log(q); // true
  • ์„ ์–ธ ์—†๋Š” ํ• ๋‹น
    ๊ตฌ์กฐ ๋ถ„ํ•ด๋ฅผ ํ†ตํ•ด ๋ณ€์ˆ˜์˜ ์„ ์–ธ๊ณผ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
var a, b;

({ a, b } = { a: 1, b: 2 });

์ฐธ๊ณ : ํ• ๋‹น ๋ฌธ์„ ๋‘˜๋Ÿฌ์‹ผ ( .. )๋Š” ์„ ์–ธ ์—†์ด ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด(object literal) ๋น„๊ตฌ์กฐํ™” ํ• ๋‹น์„ ์‚ฌ์šฉํ•  ๋•Œ ํ•„์š”ํ•œ ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.
{a, b} = {a:1, b:2}๋Š” ์œ ํšจํ•œ ๋…๋ฆฝ ๊ตฌ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์ขŒ๋ณ€์˜ {a, b}์ด ๊ฐ์ฒด ๋ฆฌํ„ฐ๋Ÿด์ด ์•„๋‹Œ ๋ธ”๋ก์œผ๋กœ ๊ฐ„์ฃผ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ({a, b} = {a:1, b:2})๋Š” ์œ ํšจํ•œ๋ฐ, var {a, b} = {a:1, b:2}์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
( .. ) ํ‘œํ˜„์‹ ์•ž์—๋Š” ์„ธ๋ฏธ์ฝœ๋ก ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ด์ „ ์ค„๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์ด์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜ ์ด๋ฆ„์œผ๋กœ ํ• ๋‹นํ•˜๊ธฐ
    ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์†์„ฑ์„ ํ•ด์ฒดํ•˜์—ฌ ๊ฐ์ฒด์˜ ์›๋ž˜ ์†์„ฑ๋ช…๊ณผ๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์˜ ๋ณ€์ˆ˜์— ํ• ๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
var o = { p: 42, q: true };
var { p: foo, q: bar } = o;

console.log(foo); // 42
console.log(bar); // true

-์ถœ์ฒ˜: https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment#%EA%B0%9D%EC%B2%B4_%EA%B5%AC%EC%A1%B0_%EB%B6%84%ED%95%B4
, GPT4

profile
ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€