这是ES6中新增的命令,和一直所用的
var
类似。但是有所不同的是对于所声明的变量只是在let
声明变量所在的代码块有效。这两个变量的出现,也让JavaScript语言更加严谨。同其他编程语言相比,变量的声明
使用var声明变量的问题
let和const
let和var比较代码
/* var aBtn = document.getElementsByTagName('button') for (var i=0; i < aBtn.length; i ) { aBtn[i].onclick = function () { alert(i) } }*/ var aBtn = document.getElementsByTagName('button') for (let i = 0; i < aBtn.length; i ) { aBtn[i].onclick = function () { alert(i) } } /* var aBtn = document.getElementsByTagName('button') for (var i = 0; i < aBtn.length; i ) { // 封装到函数里,限制作用域 (function (i) { aBtn[i].onclick = function () { alert(i) } })(i) }*/ }
在ES6中,允许按照一定模式,从数组和对象中提取值,对变量进行赋值,称为解构
相当于是一种模式匹配,只要等号两边模式相同,左边的变量就会被赋予相应的值。
let [a,b,c] = [1,2,3];console.log(a,b,c); //1,2,3
对对象的解构赋值
let {a,b,c} = {a:'aaa',b:'bbb',c:'ccc'}console.log(a) //aaaconsole.log(b) //bbbconsole.log(c) //ccc
联系客服