繁体   English   中英

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

[英]jshint gives “missing semicolon” or not based on whether the function is void?

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

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

在此处输入图片说明

并添加分号满足jshint:

在此处输入图片说明

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

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

在此处输入图片说明

这背后的逻辑是什么? 更一般而言,是否有官方的样式指南,例如Python中用于Javascript的PEP8,解决了分号的最佳做法?

使用棉绒规则,您可以:

  • 函数声明不需要后跟分号。
  • 表达式(包括包含函数表达式的表达式)都可以。

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

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

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

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

一份非常固执己见的主题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM