iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 11
0
Modern Web

被 React react 的後端工程師系列 第 11

[DAY 11] 煉金術就是分解構築之大哥哥來寫 JavaScript 之 ES6 真會玩

我想說的是
解構賦值語法是 ES6 的新特性,可以將陣列或物件中的資料取出成獨立變數

這篇來談 煉金術的基礎
https://ithelp.ithome.com.tw/upload/images/20190923/20121016oAlnITmzte.jpg

不要瞎掰好嗎
https://ithelp.ithome.com.tw/upload/images/20190923/20121016L4F6xEfA7b.jpg

來說說「解構」,當初第一次看到真的是無法理解
為什麼要搞這麼多新奇...而不有趣的東西出來呢?
到現在我仍然不能理解啦,但是中間有去寫了一下 python 稍微比較能接受這種用法

解構賦值有點像是傳送門的概念,將右方的資料往左邊送
然後會一個位置對一個值,該在哪就在哪
當沒有對應的值時,就會得到 undefined

以 React 開頭為例

const {useState} = React;
useState();

相等於

React.useState();

陣列

// 基本用法
const [a, b] = [1, 2]         // a=1, b=2

// 略過運算(Spread operator)
const [a, , b] = [1, 2, 3]    // a=1, b=3

// 其餘運算(Rest Operator)
const [a, ...b] = [1, 2, 3]   // a=1, b=[2,3]

兩個變數可以透過一個解構指派式交換
這個真的很奇葩,以前數字交換都要一個 tmp 做暫存
感覺 javascript 又把學程式搞得更反人類了

var a = 1;
var b = 3;

[a, b] = [b, a];
console.log(a); // 3
console.log(b); // 1

物件

物件上的使用則是根據同名屬性來賦予新的變數名稱
先找到同名屬性,然後再賦予對應的變數相應的值

真正被建立和賦值的是 { } 當中,冒號「:」後的變數

// 賦予新的變數名稱
const { prop: x, prop2: y } = { prop: 5, prop2: 10 } // x=5, y=10
const { prop: prop, prop2: prop2 } = { prop: 5, prop2: 10 } //prop = 5, prop2=10

基本的解構就是這樣子
箭頭函數、解構賦值都是現在常見的 ES6 特性,在學習 react 的時候會不停的遇到
所以有必要稍微了解一下基本用法,更深入的等遇到的時候再來研究
我知道看起來很像在騙篇數,但是這些東西對於沒在寫前端的後端工程師來說都是些新玩意兒
花點時間理解也是合情合理的

大...哥哥,準備好回來寫 react 了嗎


上一篇
[DAY 10] 地圖除了畫在床單上,程式裡要怎麼用 map 呢?
下一篇
[DAY 12] 司機我要下車之刪除清單中的服務之按得太久腰受不了
系列文
被 React react 的後端工程師30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
阿展展展
iT邦好手 1 級 ‧ 2020-01-18 06:27:14

大...大葛格...一起玩....

我要留言

立即登入留言