es6语法
es6新增命令
let
let 类似于 var 用来声明变量 ,let 命令所在的 代码块内才生效
{
let a=10
var b=10
}
console.log(a) not defined
console.log(b) 10
let 只在它所在的代码块有效
for循环 适合let 命令 for(let i=0;i<10;i++){
}
console.log(i)
防止 变量污染 i 为not defined
变量提升问题
console.log(foo)输出undefined
var foo=2;
console.log(bar)报错
let bar =2
var a=[]
for(var i=0;i<10;i++){
a[i]=function(){
console.log(i)
}
}
a610
b=[]
for(let i=0;i<10;i++){
b[i]=function(){
console.log(i)
}
}
b6 6
for(let i=0;i<3;i++){
let i='abc'
console.log(i)
}
每个 声明的i 都有自己 独自的 作用域
let 的 块级作用域 防止了 全局变量的 泄露
const
声明一个只读的量 不可改变
一旦声明不可改变
const PI =3.1415
PI //3.1415
PI=3 报错