Ruby有一个方便的unless条件,这是“if的负面等价物”。
有没有办法在JavaScript中使用比if (!condition)
更具语义的“否定if”?
答案 0 :(得分:2)
不,没有这样的控制结构。为了使代码更具可读性,你可以做的一件事就是在函数中包含否定。
function baconIsTooThin () {
return !baconIsChunky();
}
if (baconIsTooThin()) {
...
}
或者您可能希望使用CoffeeScript,这使得JavaScript看起来更像Ruby(并且具有unless
)并编译为纯JavaScript。
// CoffeeScript
unless (foo)
alert('bar')
// Compiled JavaScript
if (!foo) {
alert('bar');
}
答案 1 :(得分:2)
这是黑客:P
let unless = (condition,callback)=>{!condition && callback();}
let a = 10;
let b = 20;
unless(a > b,()=>{console.log("A should be greater than B")})
答案 2 :(得分:1)
JavaScript中没有这样的声明。我相信这个结构很接近:
a || (_ => {
console.log('a is false');
})();
let a = false;
a || (_ => {
console.log('a is false');
})();

显然这没有实际意义,除非你想让你的代码不那么可读。正常if (!a)
是要走的路,或者 - 在第二位 - if (a); else