一、let和const
let和var的不同:
var:
1.var可以重复声明;
2.会进行预解析
3.作用域:全局作用域和函数作用域
let:
1.同一个作用域下不允许重复声明;
2.不进行预解析
3.作用域:全局作用域和块级作用域
let a=2; console.log(a);
var a=6; var a=10;
if(true){var a=1;} console.log(a); //1
if(true){let a=1;} console.log(a); // a is not defined
const常量:
常量不能重新赋值;不能重复声明;const也不会被预解析;
const a=2;console.log(a);
const b=undefined; console.log(b);
二、块级作用域
{
let a=6;
console.log(a);
}
let lis=document.querySelectorAll('li');
for(let i=0;i<lis.length;i++){
lis[i].onclick=function(){
console.log(i);
}
}