let特点:
1.没有变量提升,具有块级作用域
2.不同重复同一个变量
3.函数内不能用let重新声明函数的参数
4. 定义的变量块级作用域。一个花括号一个块
// let与var的区别 不能重复定义相同的变量名,//报错 Identifier 'num' has already been declared //let没有变量提升有一个块级作用域 及{}就会产生一个块级作用域 // for(let i = 0;i<5;i++){ // var num = 10; // let num = 5; // console.log(num); // } // function fnn(name){ // let name = "李四"; // console.log(name); // } // fnn('张三');//报错,重复定义 function fun1 (){ console.log(num); var num = 1;//变量提升 undefined } fun1(); function fun2 (){ console.log(num); let num = 2;//报错 Cannot access 'num' before initialization } fun2();
函数的自调用实现点击
for (var i = 0; i < btn.length; i++){ (function(i){ btn[i].onclick = function () { console.log(i) } })(i)
let 实现点击
var oBtn = document.getElementsByTagName('button'); for (let i = 0; i < oBtn.length; i++) { oBtn[i].onclick = function () { console.log(i) } }