ES6
ES6 块级作用域
var 变量提升 * 全局作用域下自动转换为window对象属性,而let、const不会。 function test1() { console.log(a) // undefined if(false) { var a = 1; } console.log(a) // undefined function inner() { if(false) { var b = 2 } } console.log(b); //RefrenceError b is not defined } 示例:http://jsbin.com/tunonipare/edit?html,js,console let 块级作用域 * 可以读取外层变量、可以重新定义外层变量,但是不能在块级作用域内重新声明函数如果必须要使用函数表达式声明。块级作用域声明函数必须在大括号内。