需要澄清 "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 中还有 let
或 const
。请注意,ES2015 模块隐式处于严格模式。由于代码通常以模块的形式构建,因此您应该始终在这种模式下工作。
在JavaScript中,声明一个没有var
关键字的变量使其成为全局变量。虽然 JavaScript 允许这样做,但这不是一个好的做法。全局变量从来都不是一个好主意。
use strict
的部分吸引力在于它强制采用良好做法。启用后,您需要使用 var
关键字,否则将抛出异常。
这是 Mozilla 关于严格模式的文档
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode
我刚开始使用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 中还有 let
或 const
。请注意,ES2015 模块隐式处于严格模式。由于代码通常以模块的形式构建,因此您应该始终在这种模式下工作。
在JavaScript中,声明一个没有var
关键字的变量使其成为全局变量。虽然 JavaScript 允许这样做,但这不是一个好的做法。全局变量从来都不是一个好主意。
use strict
的部分吸引力在于它强制采用良好做法。启用后,您需要使用 var
关键字,否则将抛出异常。
这是 Mozilla 关于严格模式的文档
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode