回答

收藏

JavaScript 中的“use strict”有什么作用

技术问答 技术问答 579 人阅读 | 0 人回复 | 2023-09-11

最近,我通过了 Crockford 的JSLint操作了我的一些 JavaScript 代码,它给出了以下错误:# X  S% j  s) @; y, S* j
1 行字符 1 问题:缺乏use strict”语句。
* J' w  C$ J9 X# x! o2 z3 U
做了一些搜索,意识到有人加了。"use strict";到他们的 JavaScript 代码中。添加句子后,错误不再出现。不幸的是,谷歌没有透露字符串句子背后的大部分历史。当然,它必须向浏览器解释 JavaScript 有关系,但我不知道会发生什么。. x. |. k* `9 s- H7 r3 w7 f* }
那么到底是"use strict";什么,它意味着什么相关吗?% Y# U$ f7 o2 g
是否有当前浏览器响应"use strict";字符串或将来使用?# h6 z0 L, p2 E: E( F4 f
                                                               
) F' p; z, @+ {0 u    解决方案:                                                               
4 c* ^8 K& f( l# \+ k                                                                ES6 模块更新在原生 ECMAScript 模块(带import和export语句)和ES在6 类中,严格式始终处于启用状态,不能禁用。
( E( q; a( w; B- {+ y原答案这篇关于 Javascript 严格模式的文章可能会让你感兴趣:John Resig - ECMAScript 5 模式严格,JSON 等
0 j, n: Q4 H5 g5 B' s6 P0 i引用一些有趣的部分:+ f* {6 u% H9 x5 C& Z1 a
严格的模式是 ECMAScript 5 中的一个新功能允许您在上下文中严格程序或函数。这种严格的上下文将防止某些操作的执行,并导致更多的异常。
$ t& h* s$ B, d: j  m4 s+ r和:
% R0 J# ]7 N! h- G8 O- [4 S, O严格模式有以下帮助:
8 f# U& p8 ?! G0 Z0 g它捕获了一些常见的编码错误,抛出了异常。* x& C0 S, o; G/ c/ [
在采取相对不安全的操作时(如获得对整体对象的访问权),它会阻止或抛出错误。
/ y. Q# }! f3 s* i9 S* l* S它禁用令人困惑或考虑不周的功能。
请注意,您可以在整个文件中应用严格模式......或者你可以仅仅用于特定功能(仍引用 John Resig 的文章):. K# J# G, z' w. X
    // Non-strict code...(function(){  "use strict";  // Define your library strictly...})();// Non-strict code...4 w4 j( [1 l: m3 N4 J
如果你必须混合旧代码和新代码,这可能有帮助;-); W5 Y! f! @) K, L
所以,我觉得有点像"use strict"您可以在 Perl 中使用的(因此得名?:它通过检测更多可能损坏的东西来帮助你减少错误。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则