ECMAScript6 块级作用域详解
一、杂谈
在ECMAScript之前,是没有块级作用域这一说的。只有下面两种作用域:
1、全局作用域
2、局部作用域
这两种作用域的存在,导致了javascript‘变量提升’。那么到底什么是变量提升呢,接着看代码吧!
function test1(){ console.log(a); var a = 1; } test1(); // Undefined
上面为什么是输出Undefind呢,原因就是变量提升,让我们在看一段代码!
function test2(){ var a; console.log(a); a = 1; } test2(); // Undefined
显然上面输出的也是Undefined。test1中,局部变量a的变量提升,在进入test1函数时,就自动定义了变量a并给他赋予了Undefined的值,如test2函数。变量提升造成许多不合理场景。所以ES6在这基础上添加了块级作用域的概念,但是不影响var声明的变量。
下面,让我们体验ES6的块级作用域,let和canst走起。。。
浙公网安备 33010602011771号