亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

讀書筆記-ES6標準入門:數組的解構賦值

標簽:
JavaScript

基本用法
ES6允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring)

//ES5:为变量赋值,只能直接指定值
var a = 1;
var b = 2;
var c = 3;

//ES6:“模式匹配”。可以从数组中提取值,按照位置的对应关系对变量赋值
var [a,b,c]= [1,2,3];

let [foo,[[bar],baz]]=[1,[[2],3]];
foo // 1
bar // 2
baz // 3

如果解构不成功,变量的值就等于undefined

var [foo]=[];

不完全解构,等号左边的模式只匹配等号右边数组的一部分。这种情况下解构OK

let [x,y]=[1,2,3];
x //1
y //2

如果等号的右边不是数组(或者严格说,不是可遍历的解构),那么将会报错。

//报错
let [foo]=1;
let [foo]=false;
let [foo]=NaN;
let [foo]=undefined;
let [foo]={};

上面的表达时都会报错,因为等号右边的值,要么转为对象以后不具备Iterator接口,要么本身就不具备Iterator接口

解构赋值不仅适用于var命令,也适合用于let和const命令。
对于set结构,也可以使用数组的解构赋值。

let [x,y,z]=new Set(["a","b","c"]);
x //"a"

事实上,只要某种数据结构具备Iterator接口,都可以采用数组形式的解构赋值。

默认值
解构赋值允许制定默认值。
ES6内部使用严格相等运算符===判断一个位置是否有值。所以,如果一个数组成员不严格等于undefined,默认值是不会生效的。
如果默认值是一个表达式,那么这个表达式是惰性求值的。即只有在用到的时候才会求值。
默认值可以引用解构赋值的其他变量,但该变量必须已经声明。

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
250
獲贊與收藏
1274

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消