Javascript JSHint:允许ASI返回空语句
在我的JavaScript中,如果不满足某些条件,我希望函数尽早退出,如下面的示例所示Javascript JSHint:允许ASI返回空语句,javascript,jshint,Javascript,Jshint,在我的JavaScript中,如果不满足某些条件,我希望函数尽早退出,如下面的示例所示 (function () { var something = false if (!something) return doMoreStuff() }()) 我不喜欢使用分号,它工作得很好(上面的代码片段与预期的一样) JSHint不断给我错误换行错误'return'。虽然可以通过在return语句后添加分号来解决这一问题,但我宁愿在脚本中保留分号 是否有任何选项可以设置为允许在行尾不带分号
(function () {
var something = false
if (!something) return
doMoreStuff()
}())
我不喜欢使用分号,它工作得很好(上面的代码片段与预期的一样)
JSHint不断给我错误换行错误'return'
。虽然可以通过在return语句后添加分号来解决这一问题,但我宁愿在脚本中保留分号
是否有任何选项可以设置为允许在行尾不带分号的空返回
是否有任何选项可以设置为允许在行尾不带分号的空返回
不,没有。以下是提示:
如果
return
语句后面没有分号或值,它将始终进入else
条件并始终发出警告。也许您应该使用return null
或return undefined如果(!something){return}
@alex23这是不同的。我的代码段返回未定义的
,你的代码段返回错误的
@这类似于在末尾添加分号。虽然它是正确的,但这不是我想要实现的。JavaScript是一种函数式语言,FP中的函数必须返回一个值。AFAIS您正在尝试模拟一种只会…返回的过程语言。但这不是JavaScript的一杯茶。出于同样的原因,我不想使用returnundefined
:returnfalse
或returnnull
更有意义。这与以return语句本身结束行相同。returnundefined
相当于一个return
。
stmt("return", function () {
if (this.line === state.tokens.next.line) {
//...
} else {
nolinebreak(this); // always warn (Line breaking error)
}
// ...
})