JQuery相当于Ruby的a || b

时间:2011-08-17 04:48:58

标签: javascript ruby

在Ruby中,我可以编写a || b,函数将选择a是否存在,如果不存在,b。

我怎样才能在JQuery中做到这一点,而不会写一些非常麻烦的东西,如:

if (a){
  a
} else {
  b
}

此外,JQuery是否具有Ruby a ||= b

的等价物

3 个答案:

答案 0 :(得分:8)

jQuery只是一个JavaScript库,在JavaScript中我们也是一样。

var c = a || b;

这是因为

  

如果第一个对象是 truthy ,则会返回该对象。否则,返回第二个对象。

答案 1 :(得分:6)

在JavaScript中,a || b评估第一个 truthy 值(如果两者都是 falsy ,则评估最后一个值),就像在Ruby中一样。 (请记住,jQuery只是JavaScript的。)

然而,JavaScript比Ruby更多 falsy 非真实值),因此可能需要小心。请参阅Truthy and Falsy: When All is Not Equal in JavaScript

例如,在JavaScript中:"" || "foo"将导致"foo",尽管它会在Ruby中评估为""

快乐的编码。


是的,JavaScript支持x Q= y所有二元运算符x = x Q y。一个简单的方法是找到它,然后看看:)

答案 2 :(得分:4)

var myVariable = myVariable || "Default";