Javascript 函数语法是这里真正需要的分号

Javascript 函数语法是这里真正需要的分号,javascript,syntax,Javascript,Syntax,JSHint一直告诉我这是不正确的 this.x = function( z ) {do stuff} 它报告在最后一个}之前应该有一个分号 this.x = function( z ) {do stuff;} lint报告在 this.x = function( z ); {do stuff} 但是它似乎正在运行,这是正常的还是那些如果不严格运行就会被忽略的错误之一,哪一个是正确的答案呢?Lint没有要求您在结束排列后添加分号,正如所指出的那样 它要求您在右大括号后加一个分号,如下所示:

JSHint一直告诉我这是不正确的

this.x = function( z ) {do stuff}
它报告在最后一个}之前应该有一个分号

this.x = function( z ) {do stuff;}
lint报告在

this.x = function( z ); {do stuff}

但是它似乎正在运行,这是正常的还是那些如果不严格运行就会被忽略的错误之一,哪一个是正确的答案呢?

Lint没有要求您在结束排列后添加分号,正如所指出的那样

它要求您在右大括号后加一个分号,如下所示:

this.x = function( z ) {
    // an instruction with a semicolon;
}; // and this one is for the outer instruction
请注意,缩进对于避免这种混淆非常重要


是的,它是强制性的,因为在当前情况下,分号表示主指令的用途:赋值。

第一个选项是正确的。分号分隔JS中的语句-它不会终止它们。一些自动插入规则确实会使这变得复杂,但在这里您可以。第二种方法也是有效的,可以防止一些过于激进的工具jsl抱怨。您的第三个选项是错误的。

您也可以这样做:p this.x=function z{do stuff;};你误解了LINT…它肯定没有告诉你在函数定义的结束部分后放一个分号。这是正确的格式吗?@JAAulde谢谢,我将格式移动了一点,箭头移到了前面的最后一个}处,所有其他行都是我描述的样子。这不是强制性的,因为取决于下一行的内容。就我个人而言,我会用分号。是的,你可以,但如果计划使用JSLint,或者我应该说JSHint哪个更符合asi,默认情况下该选项不启用