es6笔记(3) 变量的解构赋值
2018-02-06 16:13
716 查看
基本概念
本质上是一种匹配模式,只要等号两边的模式相同,那么左边的变量就可以被赋予对应的值。// 以往定义接个变量的时候,需要这样 var a = 1, b = 2, c = 3; // 使用ES6解构赋值,可以这样写 let [a,b,c] = [1,2,3];
解构赋值的几种方式
1. 数组的解构赋值
let [foo,[[bar],baz]] =[1,[[2],3]]; console.log(foo,bar,baz); //输出1,2,3
解构赋值是可以使用缺省的方式用于占位
let [,,c] = [1,2,3]; console.log(c); //3
如果解构赋值时,没有找到对应的值会怎样?
let [a] = []; console.log(a); //解构失败 undefined; let [y = 1] = []; console.log(y); //因为第二个等号,解构失败。输出 1
2. 对象的解构赋值
我们知道,对象和数组不太一样,1对象是有属性的,2对象是无序的。那么变量的解构赋值如何进行呢?//=======变量名,与属性名一致========== //此时会按照变量名, //与右侧的属性名匹配,如果一致就赋值。 let {a,b}={b:'bbbb',a:'aaaa'}; console.log(a); // aaaa //=======变量名,与属性名不一致========= let {a:b} ={a:1}; console.log(b); // 1 console.log(a); // 报错 //真正被赋值的是变量,而不是前面属性
3. 基本类型的解构赋值
字符串在某些情况下会被当成数组使用let [j,d] = "12"; console.log(j,d); //1 2
直接获得字符串的长度,通过prototype。
let {length:len} = 'jd'; console.log(len); //2
可以直接拿到类型prototype上的方法
let{toString:ts} = 1; let{toString:bs} = true; console.log(ts); //输出 Number.prototype.toString 方法 console.log(bs); //输出 Boolean.prototype.toString 方法
null 和 undefined不能解构赋值
let a = undefined; //直接报错
相关文章推荐
- es6 学习笔记 之 变量声明 和 变量的 解构赋值
- js-es6-变量的解构赋值
- ECMAScript6笔记:变量的解构赋值
- ECMAScript6学习笔记 ——let、const、变量解构赋值
- ECMAScript 6笔记(let,const 和 变量的解构赋值)
- 【es6】【变量的解构赋值】【数组解构赋值】
- ES6:变量的解构赋值
- es6系列-变量的解构赋值
- es6-变量解构赋值
- ES6 变量解构赋值
- 《ES6入门(第二版)》学习笔记【精华】(2)-变量的解构赋值
- ES6新特性 let、const、变量对象的解构赋值
- ES6--变量的声明及解构赋值
- js -- ES6(三)-- 变量的解构赋值(根据阮一峰ES6标准入门整理 更新中。。。)
- ES6--变量的解构赋值
- 【ES6】变量的解构赋值
- ES6变量解构赋值
- ES6 - 变量的解构赋值
- 【es6】【变量的解构赋值】【字符串,数值和布尔值解构】【函数参数的解构赋值】【用途】
- ES6笔记(3)-- 解构赋值