ν°μ€ν 리 λ·°
μ΄λ²μ λ€λ€λ³Ό μ£Όμ λ destructuring μ λλ€. μΌλ¨ destructuringμ λΆν΄, νκ΄΄ μ΄λ° μλ―Έλ‘ μ°μ΄λ λ¨μ΄μΈλ°μ, MDNμμ κ²μν΄λ³΄λ©΄ ꡬ쑰 λΆν΄ ν λΉ μ΄λΌλ ννΈλ‘ μ€λͺ μ νκ³ μμ΅λλ€. κΈ°λ³Έ μμ½μ€λͺ μ μ΄λ μ΅λλ€.
βοΈκ΅¬μ‘° λΆν΄ ν λΉ
ꡬ쑰 λΆν΄ ν λΉ(destructuring assignment) ꡬ문μ λ°°μ΄μ΄λ κ°μ²΄μ μμ±μ ν΄μ²΄νμ¬ κ·Έ κ°μ κ°λ³ λ³μμ λ΄μ μ μκ² νλ μλ°μ€ν¬λ¦½νΈ ννμ(expression)μ λλ€.
1 2 3 4 5 6 7 8 9 10 | //ES5 var values = [0,1]; //assignment var x = values[0], y = values[1]; //swap var temp; temp = x; x = y; y = temp; | cs |
=> values λΌλ λ°°μ΄μ μμ±νκ³ κ°κ°μ x,y λ³μμ κ°μ ν λΉν ν tempλΌλ λ³μλ₯Ό μ΄μ©ν΄μ κ°μ λ°κΎΈλ μμ μ λ¨κ³λ₯Ό κ±°μΉκ² λ©λλ€. λ³κ±° μλ μμ μΈλ° μ½λκ° μκ°λ³΄λ€ μ’ κΈΈμ£ . ES6μμμ destructuring μ ν΅ν΄μλ μ΄λ»κ² λ³νλλμ§ λ³΄κ² μ΅λλ€.
1 2 3 4 5 6 | //ES6 var values = [0,1]; //assignment var [x,y] = values; //swap [x,y] = [y,x]; | cs |
=> μ½λκ° κ΅μ₯ν λ¨μν΄μ‘μ΅λλ€. ν λΉνλ €λ λ³μλ₯Ό λ°°μ΄λ‘ μ μΈνμ¬ valuesμ κ°μ νλ²μ ν λΉμμΌλ²λ¦½λλ€. λ¬Όλ‘ λμΌν μΈλ±μ€λΌλ¦¬ μμ λ§μΆ°μ ν λΉμ΄ λ©λλ€. μλ₯Όλ€μ΄ [x,y,z] = values λΌκ³ νμΌλ©΄ λ§μ§λ§ z λ undefined κ°μ΄ λμ€κ² λ©λλ€. κ·Έλ¦¬κ³ κ°μ λ°κΎΈλ swap μμ μ ν λμλ κ°μ λ°κΎΈλ €λ λ³μ λκ°λ₯Ό μμλ₯Ό λ°κΏμ λ°°μ΄λ‘ κ°μ ν λΉνλ μμ μ νλ©΄ κ°λ¨νκ² κ°μ΄ λ°λκ² λμ£ .
2. μλ΅νκΈ°
1 2 3 4 | var values = [3,6,9]; var [x,,z] = values; console.log(x); //result = 3 console.log(z); //result = 9 |
=> λ°°μ΄μ μλ κ°λ€μ 볡μ¬νλ, κ°μ΄λ°μλ λ³μλ₯Ό μ λ ₯νμ§ μκ³ μμ£ . μ¬μ€ μ λ μ΄λ κ² μ¨λ³Έμ μ μμ§λ§ κ°λ₯νλ€κ³ λ μκ³ μμΌλ©΄ λ κ² κ°λ€μ.
3. μ€μ²©λ°°μ΄
1 2 3 | var values = [1,[2,3],4]; var [a,[b,c],d] = values; console.log(a,b,c,d); //result = 1,2,3,4 | cs |
=> μ€μ²©λ λ°°μ΄ μμμλ λμΌνκ² μ μ©λ©λλ€. λ¬Όλ‘ μλ΅λ κ°λ₯ν©λλ€.
β κ°μ²΄ λμ€νΈλμ²λ§
: λ°°μ΄ λΏλ§ μλλΌ κ°μ²΄ λν κ΅μ₯ν λ§μ΄μ°κ² λμ£ . κ°μ²΄μμλ μ΄λ»κ² λμ€νΈλμ²λ§νλμ§ μμλ³΄κ² μ΅λλ€.
1. κ° ν λΉ
1 2 3 4 5 6 7 8 | var values = { x:1, y:2 }; var {x: a, y: b} = values; console.log(a,b) //result = 1 2 | cs |
=> λ°°μ΄κ³Ό λ°©μμ ν¬κ² λ€λ₯΄μ§ μμλ° κ°μ²΄μμλ keyμ key value λ‘ κ΅¬λΆλμ΄μ§λλ€. κ·Έλμ μμκ°μ΄ ν λΉνκ³ μΆμ λ³μλ₯Ό key value μ리μ λ£κ² λλ©΄ κ°μ ν λΉλ°μ μ μμ΅λλ€.
2. μ€μ²©λ κ°μ²΄
1 2 3 4 5 6 7 8 9 10 | var values = { x:1, y:2, z: { z1:3, z2:4 } }; var {x: a, y: b, z:{z1: c, z2: d}} = values; //result = 1 2 3 4 | cs |
=> μ€μ²©λ κ°μ²΄ λν λμΌν λ°©μμ λλ€. key value μ리μ λ³μλ₯Ό λ£μ΄ κ·Έ κ°μ λ΄κ² λ©λλ€.
3. ν¨μ λμ€νΈλμ²λ§
1 2 3 4 5 6 7 8 9 10 11 12 13 | function func(){ return { x: 1, y: 2, z: [3,4,5] }; } var {x: a, y: b, z: c} = func(); console.log(a); //1 console.log(b); //2 console.log(c); //[3,4,5] | cs |
=> κ°μ²΄λ₯Ό λ°ννλ ν¨μλ₯Ό λ§λ€μλλ° ν΄λΉ ν¨μλ₯Ό νΈμΆν΄μ κ°μ ν λΉλ°λ κ² λν κ°λ₯ν©λλ€. 첫 λ²μ§Έ λ¬Ένμμ κ°μ ν λΉλ°λ κ³Όμ μ λ¨μ§ ν¨μνΈμΆλ‘ λ°κΎΌ κ² λΏμ λλ€. λν 보λ€μνΌ ν¨μμ λ°°μ΄μ μμ΄μ μ¬μ©νλ κ² λν κ°λ₯ν©λλ€.
(λ΄μ© μΆμ² : https://medium.com/ecmascript-2015/es6-destructuring-13ca399f993a)
'javascript > λͺ¨λ μλ°μ€ν¬λ¦½νΈ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
7. let + const (0) | 2019.01.06 |
---|---|
6. default + rest + spread (0) | 2019.01.03 |
4. template strings (0) | 2018.12.24 |
javascriptλ‘ λλ§μκΈ° λ§λ€κΈ° (0) | 2018.12.24 |
3 enhanced object literals (0) | 2018.12.13 |
- Total
- Today
- Yesterday
- nestjs typeorm
- Request_Limit_Exceeded
- Promise bulk
- nestjs doc
- foreignkey
- μκ³ λ¦¬μ¦
- nestjs configService
- NestJS
- nestjs config
- JavaScript
- νλ‘κ·Έλλ¨Έμ€
- Promise error
- Spring
- κΈ°μμ²API
- nestjs directory
- nestjs project
- nestjs module
- typeorm μ°κ²°
- nestjs/cli
- sequelize
- backend-framework
- DeferredResult
- Spring Async
- @nestjs/config
- typeorm
- docker mysql
- node.js
- android
- λΉλκΈ° μμ²
- node.js backend
μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |