JavaScript 中的“use strict”有什么作用
技术问答
522 人阅读
|
0 人回复
|
2023-09-11
|
最近,我通过了 Crockford 的JSLint操作了我的一些 JavaScript 代码,它给出了以下错误:7 T8 W# E1 `! @3 l, [
1 行字符 1 问题:缺乏use strict”语句。9 f& f" f, P& f+ G! a: e. F( N2 S
做了一些搜索,意识到有人加了。"use strict";到他们的 JavaScript 代码中。添加句子后,错误不再出现。不幸的是,谷歌没有透露字符串句子背后的大部分历史。当然,它必须向浏览器解释 JavaScript 有关系,但我不知道会发生什么。
7 {8 W3 C( i# X那么到底是"use strict";什么,它意味着什么相关吗?8 N" g$ ]# M" A2 u' z: }7 u
是否有当前浏览器响应"use strict";字符串或将来使用?
" W4 l+ I8 X% W. _7 X
7 D9 z4 B# ]5 z( i0 Q0 S) T 解决方案: 9 @% T$ F6 T, Y" h' B/ ~
ES6 模块更新在原生 ECMAScript 模块(带import和export语句)和ES在6 类中,严格式始终处于启用状态,不能禁用。
0 ?+ n2 A* E* d2 v0 P# |原答案这篇关于 Javascript 严格模式的文章可能会让你感兴趣:John Resig - ECMAScript 5 模式严格,JSON 等
, p: Y g0 c5 Y6 Q引用一些有趣的部分:! x e. J( J1 l* `
严格的模式是 ECMAScript 5 中的一个新功能允许您在上下文中严格程序或函数。这种严格的上下文将防止某些操作的执行,并导致更多的异常。; O/ \, p M9 A" [) `3 z
和:! A! K7 V% E% S$ ~2 H
严格模式有以下帮助:; z7 b' Y3 u+ P* d8 S: n) S9 o
它捕获了一些常见的编码错误,抛出了异常。
! O0 @( n" x7 }在采取相对不安全的操作时(如获得对整体对象的访问权),它会阻止或抛出错误。, ^# T ]4 f" C5 P( [, G
它禁用令人困惑或考虑不周的功能。请注意,您可以在整个文件中应用严格模式......或者你可以仅仅用于特定功能(仍引用 John Resig 的文章):
5 B7 z5 e& O8 ^, U% W2 {// Non-strict code...(function(){ "use strict"; // Define your library strictly...})();// Non-strict code...
# ?+ F9 q& k& H( t 如果你必须混合旧代码和新代码,这可能有帮助;-)) P/ e7 {( ?8 `2 D1 K# M* v
所以,我觉得有点像"use strict"您可以在 Perl 中使用的(因此得名?:它通过检测更多可能损坏的东西来帮助你减少错误。 |
|
|
|
|
|