将带有逻辑运算符的表达式作为参数传递给函数意味着什么?!
例如:
myFunc(expr_1 || expr_2 || expr_3);
是否等同于以下内容?!:
var expr_all = expr_1 || expr_2 || expr_3;
myFunc(expr_all);
如果是这样,它应该如何工作,特别是如果所有三个表达式都计算为字符串(而不是 bool 值),或者如果
expr_1
是 undefined
或者其他的东西?!谢谢。
最佳答案
myFunc(expr_1 || expr_2 || expr_3); Is it equivalent to the
following?!:
var expr_all = expr_1 || expr_2 || expr_3; myFunc(expr_all);
是的。它将第一个真值传递给函数。
真实值是不是
false
的值, null
, NaN
, ""
, 0
, 或 undefined
这是因为
||
是逻辑或语句。它将从左到右返回第一个真实对象的值。否则它将返回false。请参阅以下示例:
"a" || "b" //"a"
"" || "b" //"b"
"" || "" //""
"" || undefined //undefined
"" || [] // []
关于javascript - 在函数参数中使用表达式和逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16678186/