陣列的解構賦值
let [a, b] = [12, 13]
let [a, [b, c], d] = [13, [15, 16],]
let [a, [[b], c]] = [78, [[12], 23]]
let [x, y] = [1, 3, 5] // x = 1,y = 3
let [x, y, ...z] = ['a'] //x = a,y = undefined ,z =
let [h, ...b] = [1, 2, 3, 4] //1,[2,3,4]
//預設值
// let [x = true, y = undefined] = [123, 456]
物件的解構賦值
陣列的元素是按次序排列的,變數的取值由它的位置決定;
而物件的屬性沒有次序,變數必須與屬性同名,才能取到正確的值。
let =
let = //ff undefined
let = //bb 123
let obj =
let = obj
f//hello
e//word
let =
bb //123
aa //error: foo is not defined
//aa是匹配的模式,bb才是變數。真正被賦值的是變數bb,而不是模式aa。
let foo
( = )
let命令下面一行的圓括號是必須的,否則會報錯。
因為解析器會將起首的大括號,理解成乙個**塊,而不是賦值語句。
let arr = [1,2,3]
let = arr
first
//1last
//3
字串的解構賦值
const[a,b,c,d,e] = 'hello'
a //h
b //e
...
類似陣列的物件都有乙個length屬性,因此還可以對這個屬性解構賦值。
let = 'hello'
len//5
數值和布林型別的解構賦值
解構賦值時,如果等號右邊是數值和布林值,則會先轉為物件。
let = 123
s === number.prototype.tostring //true
ES6解構賦值
一 基本用法 解構 destructuring 按照一定的模式,從陣列或者物件中提取值,對變數進行賦值。let par1,par2,par3 1,2 console.log par1,par2,par3 1 2 不完全解構時par3對值為undefined 解構賦值允許指定變數對預設值。let pa...
es6解構賦值
coding changes the world accumulating makes yourself 主要從三個方面講述 陣列式的解構賦值 物件式的解構賦值 函式中的解構賦值 preface 現今的變數宣告語法十分的直接 左邊是乙個變數名,右邊可以是乙個陣列 的表示式或乙個物件 的表示式,等等。...
ES6解構賦值
陣列的解構賦值 陣列的解構賦值需要左邊的變數結構需要等於右邊的值的結構,即給對應位置的變數宣告對應位置的值,變數的取值由位置決定 只要某種資料型別具有迭代器 iterator 介面,就可以使用陣列的解構賦值,不一定非是陣列 es6中具有iterator介面的資料型別有 陣列,類陣列物件,字串,set...