0

我刚开始使用javascript,最近遇到了一个问题。在这个关于“使用严格”语法的 w3schools 部分中,它指出由于未定义 x 会导致错误,但据我所知,x 等于 3.14。我感到很困惑。

"use strict";
x = 3.14;                // This will cause an error (x is not defined)

我需要澄清这里实际发生的事情。

4

2 回答 2

3

您必须在赋值x之前定义变量!

"use strict";
let x = 3.14;

在 ES5 中,您var用于变量声明。在 ES2015 中也是letconst. 请注意,ES2015 模块隐含在严格模式下。由于代码通常以模块的形式构建,因此您应该始终在这种模式下工作。

于 2016-05-30T00:03:29.243 回答
3

在 JavaScript 中,声明一个不带var关键字的变量会使其成为全局变量。虽然 JavaScript 允许这样做,但这不是一个好习惯。全局变量从来都不是一个好主意。

部分吸引力use strict在于它强制执行良好的做法。启用后,您需要使用var关键字,否则将引发异常。

这是 Mozilla 关于严格模式的文档

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode

于 2016-05-30T00:04:39.263 回答