【前言】
本文简单说下JS块级作用域相关概念
【主体】
在ES6之前,我们都是用var来声明变量,而且JS只有函数作用域和全局作用域,没有块级作用域,所以{}限定不了var声明变量的访问范围。
例如:
{ var i = 9; } console.log(i); // 9
ES6新增的let,可以声明块级作用域的变量。
{ let i = 9; // i变量只在 花括号内有效!!! } console.log(i); // Uncaught ReferenceError: i is not defined
案例demo:
{ var x = 0; const y = 1; let z = 2; } console.log(x);//0 console.log(y);//报错 console.log(z);//报错
.