jshint根据函数是否无效给出“缺少分号”?

时间:2019-02-03 12:34:30

标签: javascript jshint

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

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

enter image description here

并添加分号满足jshint:

enter image description here

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

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

enter image description here

这背后的逻辑是什么?更笼统地说,是否有官方的样式指导,例如PEP8 in Python的Javascript解决了分号的最佳做法?

1 个答案:

答案 0 :(得分:2)

有了棉绒规则,您可以:

  • 函数声明后不必加分号。
  • 表达式,包括那些包含函数表达式的表达式,都可以。

通过将void运算符放在function关键字之前,可以将其强制放入表达式上下文中。

由于它在表达式上下文中,因此您对表达式中的函数不执行任何操作,并且使结果无效,它变得毫无意义。该表达式根本不执行任何操作。它甚至不使用存储在其中的函数创建变量,这就是为什么会出错:

void function x() { console.log(1) };
x();

  

更一般而言,javascript中分号的最佳实践规则是什么?

一个高度重视的主题。