ES6 / JavaScript - 声明变量而不使用/ const

时间:2016-04-06 07:52:46

标签: javascript

好的,我的问题很简单: 在JavaScript / ES6中

当你有类似

之类的东西时会发生什么
 x = 5;

 console.log(x);  // 5

是解释器在运行时自动添加“let”还是为什么它没有错误?

编辑:严格模式 ES5的语法允许一些称为隐式全局变量的东西,它们就是 许多令人沮丧的编程错误的来源。简而言之,如果你忘了宣布一个 使用var的变量,JavaScript会愉快地假设您指的是全局变量 变量。如果不存在这样的全局变量,它将创建一个!你可以想象 这引起的问题。

我明白了。谢谢你的评论。我现在明白为什么会这样。谢谢!

3 个答案:

答案 0 :(得分:1)

在这种情况下,x成为全局变量。尽量避免这种情况,因为浏览器上的全局变量很难。

答案 1 :(得分:1)

这里没有关于ES6的内容。你刚创建了一个全局变量,因为你不在struct mode

顺便说一下,babel默认会添加"use strict";。因此babel会出错。

您可以在此处试用:https://babeljs.io/repl/

答案 2 :(得分:0)

加上前两个答案:

没有关键字的赋值将返回值:

> const x = 4
undefined
> let y = 4
undefined
> var z = 4
undefined
> a = 4
4

在某些缩小器中使用删除关键字来减少有效负载