javascript - 在函数参数中使用表达式和逻辑运算符

标签 javascript

将带有逻辑运算符的表达式作为参数传递给函数意味着什么?!

例如:

myFunc(expr_1 || expr_2 || expr_3);

是否等同于以下内容?!:
var expr_all = expr_1 || expr_2 || expr_3;
myFunc(expr_all);

如果是这样,它应该如何工作,特别是如果所有三个表达式都计算为字符串(而不是 bool 值),或者如果 expr_1undefined或者其他的东西?!

谢谢。

最佳答案

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/

相关文章:

javascript - 拉伸(stretch)高度以适应 React Native 中的内容

javascript - 一种在 NodeJS 中获取和发送 Instagram 直接消息的方法

javascript - Zurb Foundation 顶部栏根本不工作

javascript - 使用 VueJS 根据复选框值切换输入元素的禁用属性

javascript - 立即函数有什么用?

javascript - 如何在 Css 或 Javascript 中为其他图像制作动画?

javascript - 在 Jasmine 测试中加载 $modal 的模拟

javascript - Webpack 与路径相关的问题

javascript - 从项目数组中删除一个项目只会删除最后一个项目

javascript - 如何将物联网数据发送到Oracle Iot云服务?