es6 块作用域
代码是使用{}包起来的,就是一个块作用域
详情看下面的DEMO
function test(){
for (let i=1;i<3;i++) {
console.log(i)
}
console.log(i)
}
function test(){
for (var i=1;i<3;i++) {
console.log(i)
}
console.log(i)
}
1、i 脱离了块作用域,let声明的变量只有在块作用域重用小 所以报错
2、我们没有声明i调用的时候应该报undefined错误,这里报is not defined ,这是为什么呢?
是因为es6默认(强制)开启了严格模式“use strict”,如果在es5中需要开启严格模式的话,在js文件的顶部加上“use strict”
============================
严格模式:变量未声明不能引用
let 不能重复声明
严格模式