var a = 5; var b = 10; if (a === 5) { let a = 4; // if 块级作用域 var b = 1; // 函数级作用域 console.log(a); // 4 console.log(b); // 1 } console.log(a); // 5 console.log(b); // 1
var
声明的变量是函数级的或者是全局的,而let
用于声明块级作用域。
在函数或程序顶层使用时,let
与var
没有什么区别:
var x = 'global'; let y = 'global'; console.log(this.x); // 'global' console.log(this.y); // 'global'