* 用let命令限定作用域
与var做对比
- 新建test.js文件
- node test.js运行文件
#ES5语法
/*1、如果是真
*2、定义i=1
*3、控制台输出i*/
if(true){
var i = 1;
}
console.log(i);
控制台输出
#ES6语法
if (true) {
let i = 1;
}
console.log(i);
控制台输出:告诉我们 (i) 未定义
总结:
1.ES5语法中用if模块中用var定义,输出的时候外面一层并没有定义i,但是最终输出的时候确能输出变量。
2.ES6语法中用let定义,本身就没定义,他的作用域仅仅在if代码块中,如果在if代码块上定义,那么就是可以看见的。
3.如果用var写的话,增加bug的可能性,ES6语法的话就比较严谨了。