在我正在查看的文件中,我看到||
javascript 函数调用中的语句是什么意思?
createObject(a_variable || b_variable)
该函数是采用真/假值还是采用其他值?
上面的代码是否等同于
createanotherObject(a_variable ? a_variable : b_variable)
我在它旁边看到的。
在我正在查看的文件中,我看到||
javascript 函数调用中的语句是什么意思?
createObject(a_variable || b_variable)
该函数是采用真/假值还是采用其他值?
上面的代码是否等同于
createanotherObject(a_variable ? a_variable : b_variable)
我在它旁边看到的。
是的。他们都做几乎完全相同的事情(第一个效率更高一些)。它将传递第一个真实值(或最后一个 - 如果没有真实值)。
您的代码等效于:
var argument = a_variable;
if ( ! argument ) argument = b_variable;
createObject( argument );
它将传递a_variable
if的值a_variable
是 truethy,否则它将传递 的值b_variable
。
var a = false, b = "FOOBAR";
console.log(a || b); // FOOBAR
是的,它们是一样的。这是一个短路运算符,即如果第一个变量为真,则不评估第二个变量。就像是
a = b || c;
if b is truthy
a = b
else
a = c
注意:人们忘记了,但 0 也是一个假值。
它相当于你的第二个例子。|| (或)一旦其中一项评估为“真实”值,条件就会结束。如果 a_variable 为空,它将使用 b_variable。