Javascript jshint给出了“提示”;缺少分号“;是否基于功能是否无效?

Javascript jshint给出了“提示”;缺少分号“;是否基于功能是否无效?,javascript,jshint,Javascript,Jshint,我在VSCode中使用jshint。jshint在下面函数的结尾“}”处给出“缺少分号”警告 void function doSomething(){ console.log('Hello, World'); } 并且添加分号满足jshint: 但在我删除void后,警告将消失,但没有分号: void function doSomething(){ console.log('Hello, World'); } 这背后的逻辑是什么?更一般地说,是否有官方风格的指导,例如J

我在VSCode中使用jshint。jshint在下面函数的结尾“}”处给出“缺少分号”警告

void function doSomething(){
    console.log('Hello, World');
}

并且添加分号满足jshint:

但在我删除
void
后,警告将消失,但没有分号:

void function doSomething(){
    console.log('Hello, World');
}


这背后的逻辑是什么?更一般地说,是否有官方风格的指导,例如Javascript解决分号的最佳实践?

以及您拥有的linting规则:

  • 函数声明不需要后跟分号
  • 表达式,包括那些包含函数表达式的表达式,是不存在的
通过将
void
运算符置于
函数
关键字之前,可以将其强制放入表达式上下文中

因为它在表达式上下文中,所以您对表达式中的函数不做任何操作,并且您将结果作废,结果将变得毫无意义。这个表达式根本不起任何作用。它甚至没有创建一个存储函数的变量,这就是为什么会出现以下错误:

void函数x(){console.log(1)};

x()发布的代码包含语法错误。即使我添加缺少的
()
,我也无法重现问题。添加您收到的实际代码和完整的linting错误消息。@str,谢谢并致歉。我在最初的帖子中发现了这个问题,当添加了
void
关键字时,jshint给出了警告。@str,现在我明白你为什么要发布这个链接:)
void
这里的意思不是“这是一个不返回任何内容的函数”@JaneJ-不,不是。谢谢,我只是假设它和C++一样。顺便说一句,我还将问题的第二部分改为不那么固执己见的部分。