1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-25 19:22:21 +00:00

因为ES6对变量提升的定义并不影响ES5的相关定义。所以,当以ES6为主的代码片中,使用var定义变量,则变量提升还是存在的。故而,我认为ES6只是对变量提升做了一些修订,并不是取消。若为取消,我认为应该在ES6环境下,设定var定义的变量也不存在变量提升。

This commit is contained in:
jacty 2016-07-25 16:44:47 +08:00
parent e18aa221da
commit 188d1a9576

View File

@ -142,7 +142,7 @@ function bar(x = 2, y = x) {
bar(); // [2, 2]
```
ES6规定暂时性死区和不存在变量提升主要是为了减少运行时错误防止在变量声明前就使用这个变量从而导致意料之外的行为。这样的错误在ES5是很常见的现在有了这种规定避免此类错误就很容易了。
ES6规定暂时性死区和修订变量提升主要是为了减少运行时错误防止在变量声明前就使用这个变量从而导致意料之外的行为。这样的错误在ES5是很常见的现在有了这种规定避免此类错误就很容易了。
总之,暂时性死区的本质就是,只要一进入当前作用域,所要使用的变量就已经存在了,但是不可获取,只有等到声明变量的那一行代码出现,才可以获取和使用该变量。