需要澄清 "use strict" 发生了什么; javascript 上的语法

Need clarification on what is going on with the "use strict"; syntax on javascript

我刚开始使用javascript,最近遇到了一个问题。在关于 'use strict' 语法的 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 中还有 letconst。请注意,ES2015 模块隐式处于严格模式。由于代码通常以模块的形式构建,因此您应该始终在这种模式下工作。

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

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

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

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