ES2015入門系列5-解構賦值

用過ReactNative的同窗確定見過相似下面的代碼:javascript

import { Text, View } from 'react-native';

這就是ES2015爲JavaScript帶來的另外一個新的語法:解構賦值。php

解構賦值(Destructuring assignment), 是用來讓咱們從數組或者對象中提取數據賦值給不一樣的變量。java

語法以下:react

  • 從數組中解構賦值react-native

let [a, b] = [1, 2];
  • 從對象中解構賦值數組

let {a, b} = {a: 1, b: 2}

PHP開發者有沒有以爲很眼熟? 對了,這不就是:函數

list($a, $b) = [1, 2];

沒錯,如你所想,ES2015從數組中解構賦值和PHP的語法同樣,也能夠忽略某些返回值, 甚至全忽略code

let [a, , c] = [1, 2, 3];
[, ,] = [1, 2, 3];

數組的解構賦值很簡單,咱們繼續來看看對象的解構賦值:對象

let object = {
  f: 1,
  b: 2
}

let {f, b} = object;

那我想賦值給不一樣變量的名字該怎麼辦呢,以下:ip

let {f: foo, b: bar} = object;

要記住,這樣一來,真正初始化並賦值的是foobar

解構賦值操做不會拋錯(Fail-soft),若是沒有找到,將會用undefined賦值過去。

let [a] = []; // a === undefined
let {b} = {}; // b === undefined

一樣,咱們也能夠設置默認值:

let [a = 1] = []; // a === 1
let {b = 2} = {}; // b === 2

也能夠應用在函數參數中:

function draw({color, using = '粉筆'}) {
  console.log('使用' + color + '的' + using + '畫畫!');
}
draw({color: '紅色'});
draw({color: '藍色', using: '蠟筆'});

結果以下:

> 使用紅色的粉筆畫畫!
> 使用藍色的蠟筆畫畫!
相關文章
相關標籤/搜索