es6新增块级作用域:由{}包裹。包括if和for的{}
var 定义的变量,没有块的概念,可以跨块访问,不能跨函数访问。
let 定义的变量,只能在块作用域里访问,不能跨块访问,也不能跨函数访问。
const 用来定义常量,使用时必须初始化 (即必须赋值),只能在块作用域里访问,而且不能修改。
//打印:inside: 6 (outside不能打印,找不到i)
function func(args){
if(true){
let i = 6;
console.log('inside: ' + i);
}
console.log('outside: ' + i);
};
func();
//打印:inside: 6 outside: 6
function func(args){
if(true){
var i = 6;
console.log('inside: ' + i);
}
console.log('outside: ' + i);
};
func();
参考
https://blog.youkuaiyun.com/hot_cool/article/details/78302673
https://www.cnblogs.com/giggle/p/5572006.html