在Ruby中,我可以编写a || b
,函数将选择a是否存在,如果不存在,b。
我怎样才能在JQuery中做到这一点,而不会写一些非常麻烦的东西,如:
if (a){
a
} else {
b
}
此外,JQuery是否具有Ruby a ||= b
答案 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";