函数调用中的'或'语句

时间:2013-02-06 20:05:10

标签: javascript jquery

在我看的文件中,我在javascript函数调用中看到||语句是什么意思?

createObject(a_variable || b_variable)

该函数是采用真/假值还是接受其他内容?

是上面的代码,相当于

createanotherObject(a_variable ? a_variable : b_variable)

我在旁边就看到了。

4 个答案:

答案 0 :(得分:4)

是。它们几乎完全相同(第一个是略微更有效率)。它会传递第一个真值(或者最后一个 - 如果没有真值)。

您的代码与此相同:

var argument = a_variable;

if ( ! argument ) argument = b_variable;

createObject( argument );

答案 1 :(得分:1)

如果a_variable是真的,它将传递a_variable的值,否则它会传递b_variable的值。

var a = false, b = "FOOBAR";
console.log(a || b); // FOOBAR

答案 2 :(得分:1)

是的,他们是一样的。它是一个短路操作符,即如果第一个为真,则不评估第二个变量。就像

a = b || c;

if b is truthy
  a = b
else
  a = c

注意:人们忘了,但0也是假值。

答案 3 :(得分:0)

这相当于你的第二个例子。 || (或)条件在其中一个术语评估为“真实”值后结束。如果a_variable为null,则使用b_variable。