์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ์ •์„ ๐ŸŸก

[์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ] ๊ตฌ์กฐ ๋ถ„ํ•ด ํ• ๋‹น

์ฝ”๋”ฉํ•˜๋Š” ํฌ๋ฃจ 2023. 9. 19. 22:00

์ฐธ๊ณ ์ž๋ฃŒ: ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ดˆ๊ธ‰๊ฐ•์˜

 

Javascript ES6+ ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด๊ธฐ - ์ดˆ๊ธ‰ - ์ธํ”„๋Ÿฐ | ๊ฐ•์˜

ES6+ ์ œ๋Œ€๋กœ ์•Œ์•„๋ณด๊ธฐ ๊ฐ•์ขŒ๋Š” Javascirpt์˜ ES6 ๋ฐ ์ดํ›„์˜ ํ‘œ์ค€ ECMAScript ๋ช…์„ธ์— ๋Œ€ํ•˜์—ฌ ์ด๋ก ์„ ๋ฐ”ํƒ•์œผ๋กœ ES5์™€ ๋‹ฌ๋ผ์ง„ ์  ๋ฐ ๊ฐœ๋…๊ณผ ๋™์ž‘ ์›๋ฆฌ๋ฅผ ๊นŠ์ด ์žˆ๊ฒŒ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค., Javascript ES6+๋Š” ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ?

www.inflearn.com

 

 

1-1. ๋ฐฐ์—ด ํ• ๋‹น 

var colors = ['red', 'white', 'orange']
var first = colors[0]
var second = colors[1]
var third = colors[2]
console.log(first, second, third)

//ํ•ด์ฒดํ• ๋‹น
const colors = ['red', 'white', 'orange']
const [first, second, third] = colors
console.log(first, second, third)

 

 

let [ , , third] = colors;
let[ , second] = colors;

- ์ด๋ ‡๊ฒŒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

const [ , , third, fourth] = colors;
console.log(fourth); //undefined

-๋งŒ์•ฝ ๋งค์นญ๋  ๊ฒƒ์ด ์—†๋‹ค๋ฉด, undefined๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

 

 

 

- ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์œผ๋กœ๋„ ๊ฐ€๋Šฅ

const arr = [1, 2, 3, 4, 5]
const [ a, ...b ] = arr
const [ , , ...c ] = arr

 

 

๋‚˜์•„๊ฐ€์„œ,

const [c, d = c * 2] = [5]
console.log(c, d);

//result
c: 5 d: 10
const [e = f, f] = [undefined, 10]

 

- ์œ„์˜ ์ฝ”๋“œ๋Š” e ์„ ์–ธํ•  ๋•Œ, f์„ ์–ธ ์•ˆ๋๋Š”๋ฐ ์ธ์šฉ๋˜๊ณ  ์žˆ์œผ๋‹ˆ, TDZ์— ๊ฑธ๋ฆฌ๊ฒŒ ๋œ๋‹ค.

 

const arr = [1, [2, [3, 4], 5], 6]
const [a, [b, [ , c], ], d] = arr
console.log(a, b, c, d)

- ๋˜‘๊ฐ™์€ ๋ชจ์–‘์œผ๋กœ ์ ์œผ๋ฉด ๋ชจ๋‘ ์ถ”์ถœ๋œ๋‹ค.

 

 

 

 

- ๋‘๊ฐœ ์ธ์ž ๊ฐ’ ๋ฐ”๊พธ๊ณ  ์‹ถ์„ ๋•Œ

let a = 10;
let b = 20;
[a, b] = [b, a]

 

 

1-2. ๊ฐ์ฒด ํ• ๋‹น  โญโญโญโญโญ

 

const iu = {
  name : '์•„์ด์œ ',
  age : 25,
  gender : 'female'
}

const {
  name,
  age,
  gender
} = iu

console.log(name, age, gender)

 

 

const loginInfo = {
  device: {
    createdAt: '2017-12-06T00:14:04+0000',
    deviceId: '0000000000004Vx',
    deviceType: 'desktop'
  },
  user: {
    createdAt: '2017-03-08T18:00:28+0000',
    email: 'power4ce@gmail.com',
    name: '์ •์žฌ๋‚จ',
    nickname: 'gomugom',
    phoneNumber: '010-9185-9155'
  }
}


//๊ฐ์ฒด ํ•ด์ฒด
const {
  device: {
  	createdAt,
    deviceId
  },
  user: {
    name,
    nickname,
    phoneNumber: phone
  }
} = loginInfo

 

 

 

- default parameter์™€ ์—ฐ๋™ ๊ฐ€๋Šฅ

const phone = {
  name : 'iPhone',
  color : undefined
}

const {
  name: n,
  version: v = '6+',
  color: c = 'silver'
} = phone
console.log(n, v, c)

//result
iPhone 6+ silver

- iPhone์€ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅ

- version ์ธ์ž๊ฐ€ ์—†์–ด์„œ default ๊ฐ’์ธ 6+ ์ถœ๋ ฅ

- color๋Š” undefined์ด๊ธฐ ๋•Œ๋ฌธ์— default ๊ฐ’ silver ์ถœ๋ ฅ

 

 

 

 

์‹ค์ œ ํ˜„์—…์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ

const deliveryProduct = {
  orderedDate: '2018-01-15',
  estimatedDate: '2018-01-20',
  status: '๋ฐฐ์†ก์ค‘',
  items: [
    {name: '์‚ฌ๊ณผ', price: 1000, quantity: 3},
    {name: '๋ฐฐ', price: 1500, quantity: 2},
    {name: '๋”ธ๊ธฐ', price: 2000, quantity: 4}
  ]
}

const {
  estimatedDate: esti,
  status,
  items: [ , ...products]
} = deliveryProduct
console.log(esti, status, products)

์ฝ”๋“œ ์˜๋ฏธ)

- estimateDate ์ด๋ฆ„ ๋„ˆ๋ฌด ๊ธธ๋‹ค๋ฉด, esti๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

- status ๋Š” ๋ชจ๋“  ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

- item์€ ์ฒซ๋ฒˆ์งธ ํ”„๋กœํผํ‹ฐ ์ œ์™ธํ•˜๊ณ ๋Š” ๋‚˜๋จธ์ง€๋Š” ๋‹ค products๋ผ๊ณ  ์ •ํ•˜์—ฌ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.