在下面的代码中,因为 s 为 null d = "test" 但如果 s = "hello"那么 d = "hello"。
这是否正确?正确的使用方法是什么 ||
var s = null;
var d = s || "test";
alert(d);
最佳答案
||是“或”;理解这里发生的事情有点棘手
var a=false;
var b=true;
result=a||b
将使“结果”为真(因为 b 为真)。发生的情况是:
- “a”已被选中 - 它为 false
- 'b' 之后被检查(因为尚未获得“true”结果,并且一个“true”结果足以使整个 || 运算符为 true) - 其值将分配给左侧侧面
如果你有
var a=true;
var b="test";
result=a||b
结果将产生 true;因为“||”的逻辑不需要检查其他值
与
var a=null;
var b="test";
result=a||b;
a 将首先被检查 - 它为 null,会转换为“false”。 b 是“test”,它是非空的,并转换为“true”。因此 b 的值将被分配。
是的,这是使用 || 的正确方法;您使用的功能也称为短路评估(因为它会尽早停止评估 bool 表达式)
关于javascript - || 的正确用法是什么在 JavaScript 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11426821/