javascript表达式中的三个分号有什么作用?

时间:2010-07-16 20:12:03

标签: javascript compression minify

我在这里和那里看到了几个表达式的三分号 它有任何合理的效果吗?

我看到的最接近解释的是,它告诉Dean Edwards压缩器忽略该线。

;;; var someVar = 'Rebel';

5 个答案:

答案 0 :(得分:26)

它让人们在StackOverflow上提问。

除此之外,它什么也没做。

答案 1 :(得分:18)

无。绝对没有。

三个分号,十个分号,一百个分号,它们都被解释为相同的结果:没有

答案 2 :(得分:11)

以三个分号开头的行用于调试代码:它表示这些行不应出现在生产环境中。 Javascript通过压缩器或其他算法运行,在创建优化的JS文件时删除;;;行。

;;; console.log("only run this line when debugging!");

如上所述,三个分号在Javascript中实际上什么也没做:它只是结束三个连续的空语句。如果使用了实际评论

// console.log("only run this line when debugging!");

然后,当您想要进入调试模式时,您必须进入并手动删除所有注释,然后在完成后进入并将它们放回去。另一种解决方案是创建一个DEBUG变量并将所有调试行包装在一个条件中:

var DEBUG = true;
if(DEBUG){
     console.log("only run this line when debugging!");
}

但这有点麻烦,实际上会为您的Javascript文档添加不需要的代码。当然,您可以通过压缩器运行JS以删除DEBUG条件,但此时您也可以使用;;;方法,这更简单。

请参阅this question了解这方面的真实例子。顺便说一句,我认为语法来自emacs

答案 3 :(得分:8)

结束一次空的陈述。

答案 4 :(得分:1)

它们是空的陈述,没有任何效果。除非语法需要语句,否则解释器或编译器可能会删除它们。