我刚开始使用javascript,最近遇到了一个问题。在这个关于“使用严格”语法的 w3schools 部分中,它指出由于未定义 x 会导致错误,但据我所知,x 等于 3.14。我感到很困惑。
"use strict";
x = 3.14; // This will cause an error (x is not defined)
我需要澄清这里实际发生的事情。
我刚开始使用javascript,最近遇到了一个问题。在这个关于“使用严格”语法的 w3schools 部分中,它指出由于未定义 x 会导致错误,但据我所知,x 等于 3.14。我感到很困惑。
"use strict";
x = 3.14; // This will cause an error (x is not defined)
我需要澄清这里实际发生的事情。
您必须在赋值x
之前定义变量!
"use strict";
let x = 3.14;
在 ES5 中,您var
用于变量声明。在 ES2015 中也是let
或const
. 请注意,ES2015 模块隐含在严格模式下。由于代码通常以模块的形式构建,因此您应该始终在这种模式下工作。
在 JavaScript 中,声明一个不带var
关键字的变量会使其成为全局变量。虽然 JavaScript 允许这样做,但这不是一个好习惯。全局变量从来都不是一个好主意。
部分吸引力use strict
在于它强制执行良好的做法。启用后,您需要使用var
关键字,否则将引发异常。
这是 Mozilla 关于严格模式的文档
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode