代码之家  ›  专栏  ›  技术社区  ›  Chase Wilson

javascript表达式中的三个分号是做什么的?

  •  8
  • Chase Wilson  · 技术社区  · 14 年前

    我在这里和那里的一些表达式中看到了三个分号。

    我见过的最接近的解释是,它告诉迪恩爱德华兹压缩机忽略这一行。

    ;;; var someVar = 'Rebel';
    
    5 回复  |  直到 10 年前
        1
  •  11
  •   Community basarat    7 年前

    调试代码中有以三个分号开头的行:这表示这些行不应出现在生产环境中。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来移除 条件,但此时您最好使用 ;;; 方法,更简单。

    看到了吗 this question 作为一个真实的例子。顺便说一句,我认为语法来自 emacs .

        2
  •  26
  •   Joey Adams    14 年前

    它让人们在网上提问。

        3
  •  18
  •   Jacob Relkin    14 年前

    没有什么。完全没有。

    没有什么 .

        4
  •  8
  •   Incognito    14 年前

    结束空语句3次。

        5
  •  1
  •   ChaosPandion    14 年前

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