gpt4 book ai didi

javascript - 我们应该使用 "use strict"吗?与第三方库(主干,下划线)?我们怎么知道它们是 'strict' 兼容的?

转载 作者:行者123 更新时间:2023-11-29 22:04:32 28 4
gpt4 key购买 nike

我研究了一些库,它们似乎不包含文件或函数级别的 "use strict"; 行。因此,如果开发人员启用严格模式,那么我们如何知道库是否兼容?可能会有一些奇怪的功能或浏览器特定问题,这些问题在启用严格模式时不容易被注意到,因此错过了,直到为时已晚!

最佳答案

当然,"use strict"当然可以是used at the top of a file of concatenated scripts (MDN) ,只要它们都是严格模式脚本,一切都会很漂亮:如果不是,或者存在严格/非严格脚本的混合,则可能会抛出不会发生的错误通常会被抛出。

使用它的最简单方法是将其保留在开发中并在生产代码中将其删除:您知道应该做什么并且有能力查找/纠正错误,因此任何严格模式错误只会用于改进您的代码。一旦投入生产,严格模式实际上只会为用户“破坏”您的站点,对您的好处为零,除非他们足够精明地调试并向您报告(不太可能)。 由于严格模式是 javascript 的一种受限形式,与收紧语法相比,放松语法更不可能导致错误。(主要的异常(exception)是 eval,它可以开始当严格模式被移除时,“泄漏”变量到周围的范围。

除此之外,您仍然可以连接脚本,但只将严格安全的脚本包装在函数中以使用每个函数的严格模式。在这种情况下,您不必针对每个原子函数执行此操作,只需将整个脚本包装在一个函数中即可:

(function(){
"use strict"
// My strict-mode script or scripts
})();

// non-strict safe scripts

当您认为只需要执行一次并且可以将所有 严格模式脚本粘贴到那个函数中时,就没有那么多字符了。

我发现,必须从函数中显式导出全局变量的缺点有所减少,因为严格模式的目标是“永远不会意外创建全局变量”,我通常已经指定了 window 对于我想要全局的任何变量。

关于javascript - 我们应该使用 "use strict"吗?与第三方库(主干,下划线)?我们怎么知道它们是 'strict' 兼容的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21728016/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com