我在 VSCode 中使用 jshint。 jshint 在下面函数的末尾 '}' 处给出“缺少分号”警告
void function doSomething(){
console.log('Hello, World');
}
并且加上分号就满足jshint:
但是在我删除 void
之后,警告消失了,没有分号:
void function doSomething(){
console.log('Hello, World');
}
这背后的逻辑是什么?更一般地说,是否有官方风格指南,例如 PEP8 in Python Javascript 解决分号的最佳实践?
最佳答案
根据您拥有的 linting 规则:
- 函数声明后不需要跟分号。
- 表达式,包括那些包含函数表达式的表达式。
通过将 void
运算符放在 function
关键字之前,您可以强制它进入表达式上下文。
因为它是在表达式上下文中,所以你对表达式中的函数什么都不做,并且你将结果作废,它变得毫无意义。该表达式根本不执行任何操作。它甚至没有创建一个存储函数的变量,这就是为什么会出现这个错误:
void function x() { console.log(1) };
x();
More generally, what's the best practice rule on semicolns in javascript?
高度固执己见的主题。
关于javascript - jshint 是否根据函数是否无效给出 "missing semicolon"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54502876/