我研究了一些库,似乎它们没有"use strict";
在文件或函数级别包含该行。因此,如果开发人员启用严格模式,那么我们如何知道该库是否兼容?启用严格模式后,可能会出现一些奇怪的功能或特定于浏览器的问题,这些问题不容易被察觉,因此直到为时已晚才被忽略!
当然,"use strict"
当然可以在串联脚本(MDN)文件的顶部使用,并且只要它们都是严格模式脚本,所有内容都会变得很花哨:如果没有,或者存在严格/非严格脚本的混合,则可能会抛出通常不会引发的错误。
使用它的最简单方法是将其保留在开发中,并在生产代码中将其剥离:您知道应该做什么,并且具有查找/纠正错误的能力,因此任何严格模式的错误只会起到改善作用。您的代码。投入生产后,严格模式实际上只会“破坏”您的网站,从而给您带来零收益的用户,除非他们精明地调试并向您报告(不太可能)。由于严格模式是javascript的一种受限形式,因此放松语法比收紧它的可能性要小得多。(主要的例外是eval
,删除严格模式后,它可以开始将变量“泄漏”到周围的范围内)。
除此之外,您仍然可以串联脚本,但仅将严格安全脚本包装在函数中以使用按功能严格模式。在这种情况下,您不必按原子功能进行操作,只需将整个脚本包装在一个函数中:
(function(){
"use strict"
// My strict-mode script or scripts
})();
// non-strict safe scripts
当您考虑只需要执行一次并且可以将所有严格模式脚本粘贴到该功能中时,并不需要太多字符。
我发现,由于严格模式的目标是“绝不意外创建全局变量”,因此减少了必须从函数中显式导出全局变量的缺点,通常我已经在指定window
要全局变量的位置。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句