Ruby有一个方便的unless条件,这是“if的负面等价物”。
有没有办法在JavaScript中做一个比if (!condition)
更具语义的“否定if”?
不,没有这样的控制结构。要使代码更具可读性,您可以做的一件事就是在函数中包含否定。
function baconIsTooThin () {
return !baconIsChunky();
}
if (baconIsTooThin()) {
...
}
或者你可能想使用CoffeeScript,它使JavaScript看起来更像Ruby(并且有unless
)并编译成纯JavaScript。
// CoffeeScript
unless (foo)
alert('bar')
// Compiled JavaScript
if (!foo) {
alert('bar');
}
JavaScript中没有这样的声明。我相信这个结构很接近:
a || (_ => {
console.log('a is false');
})();
let a = false;
a || (_ => {
console.log('a is false');
})();
显然这没有实际意义,除非你想让你的代码不那么可读。正常的if (!a)
是要走的路,或者 - 在第二位 - if (a); else