var a = 5;
var b = 10;if (a === 5) {let a = 4; // if 块级作用域var b = 1; // 函数级作用域console.log(a); // 4console.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'