您的位置:首页 > 其它

【es6】【变量的解构赋值】【数组解构赋值】

2018-01-23 11:56 633 查看

数组的解构赋值

es6中,变量赋值允许如下格式:
-----------------------
let [a,b,c] = [1,2,3];
//a=1
//b=2
//c=3
----------------------
以上写法,本质上属于"模式匹配"--即等号两边模式相同,左侧变量就会赋予对应的值
-----------------------
let [xlfd,[[lxh],zpj]] = [1,[[2],3]];
//xlfd=1
//lxh=2
//zpj=3
----------------------
let [ , ,xlfd] = ["one","two","san"];
//xlfd="san"
----------------------
解构不成功,变量的值为undefined
----------------------
let [lxh] = [];
let [xlfd,lxh] = [1];
//lxh  undefined
----------------------
不完全解构,依然可以成功
---------------------
let [x,y] = [1,2,3];
//x  1
//y  2
-----------------
let [a,[b],c] = [1,[2,3],4];
//a  1
//b  2
//c  4
----------------
默认值
---------------
let [xlfd = true] = [];
//xlfd  true
let [x,y = 'b'] = ['a'];
//x='a' , y='b'
let [x,y = 'b'] = ['a',undefined];
//x='a', y='b'
---------------------
当一个数组的成员严格等于undefined,默认值才会生效。
以下代码,数组成员为null 默认值不会生效,null不严格等于undefined。
---------------------
let [xlfd = 1] = [null];
//x  null
--------------------
如果默认值是一个表达式,那么当能在等号右边取到值时,变量的默认值对应的表达式将不会求值。
--------------------
function f() {
console.log("nihao");
}
let [x = f()] = [1,2,3];
//x  1
--------------------
默认值可引用解构赋值的其他变量,前提是该变量在其之前声明。
--------------------
let [x = 1,y = x] = [2];
// x  2 ,y  2
------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: