以分号开头的所有 JS 文件以说明之前包含的任何不良脚本是一种好习惯吗?还是不打扰?
谢谢
;(function(){ /* my script here */ })();
以分号开头的所有 JS 文件以说明之前包含的任何不良脚本是一种好习惯吗?还是不打扰?
谢谢
;(function(){ /* my script here */ })();
麻烦了,越来越多的人利用 ASI 的力量来编写无分号的 JavaScript。在无分号的 JS 世界中,这是“规则”,您在原始表达式之前放置一个分号,例如;()
、 or;[]
或;//
,以及之后'use strict';
并在其他任何地方省略它们。原始表达式不是很常见,除了典型的 IIFE。即使你用分号编写 JS,那个特定的也是安全的,而且做得比坏处多。
相反,启动所有脚本"use strict";
,在某些浏览器上将使用这些脚本检查您的脚本是否存在一些容易出错的做法,有趣的是,我相信它会产生与;
关闭之前包含的错误脚本中的任何未完成语句类似的效果。
如果您将大量代码拆分并解耦为几个 javascript 文件,那么前导分号实际上非常有用,您在某些时候将这些文件连接起来创建一个生产文件。
它只会有助于避免结构中的错误,例如
(function() {
}())
如果您的所有文件都包装在这样的结构中,它会在没有任何分号的情况下填充失败,将它们分开。除此之外,这种模式没有太大价值。
不是一个好主意:
我通常不打扰,但是,如果你想真正安全,那就去做吧。如果您使用的是其他人的库,我可能会这样做,但话又说回来,这是您的选择。