解构赋值是ES6很大的一个提升,为我们带来了很多方便,但用不好,会使程序的可读性变差,所以用时要注意,尽量保持程序的易读性. 数组解构赋值 在JS没有支持解构赋值之前,我们声明几个变量并赋值通常都是像下面这样: 1 var a=0; 2 var b=0; 3 var c=0; 有了解构赋值就可以写成这样了 1 var [a,b,c]=[0,0,0] 确实简单了许多,左边与右边能一 一对应的这种用解构赋值是既简单又易读.我之前为啥说用不好会使程序的可读性变差呢,因为解构在不是一对一对时候也会成功,…
变量的解析赋值 数组的解析赋值 es6允许按照一定的模式,从数组和对象中提取值,对变量进行赋值,这就称为解构. var a = 1; var b = 2; var c = 3; //在es6中允许写成: var [a,b,c] = [1,2,3]; //表示从数组中提取值,按照位置的对应关系对变量赋值 本质为:"模式匹配". 如果解构不成功,变量的值就等于undefined var [foo] = []; var [bar, foo] = [1]; // foo的值为undefined…
1. 解构赋值的规则是,只要等号右边的值不是对象,就先将其转为对象.由于undefined和null无法转为对象,所以对它们进行解构赋值,都会报错. let { prop: x } = undefined; // TypeError let { prop: y } = null; // TypeError 2. 对象的解构与数组有一个重要的不同.数组的元素是按次序排列的,变量的取值由它的位置决定:而对象的属性没有次序,变量必须与属性同名,才能取到正确的值. let { bar, foo } =…
let只作用在当前块级作用域内使用let或者const声明的变量,不能再被重新声明let不存在`变量提升` console.log(dad); var dad = '我是爸爸!';//预定义undefined console.log(dad); let dad = '我是爸爸!';//报错 生成十个按钮 每个按点击的时候弹出1 - 10var 方法: var i = 0; for (i = 1; i <= 10; i ++) { (function(i) { var btn = document…