在下面的代码中,因为 s 为空 d = "test" 但如果 s = "hello" 那么 d 将 = "hello"。
这是正确的吗?正确的使用方法是什么||
var s = null;
var d = s || "test";
alert(d);
在下面的代码中,因为 s 为空 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 为真)。会发生什么:
如果你有
var a=true;
var b="test";
result=a||b
结果将产生真;因为“||”的逻辑不需要检查其他值
和
var a=null;
var b="test";
result=a||b;
a 将首先被检查 - 它是 null,它转换为“false”。b 是“test”,它是非空的,并转换为“true”。因此将分配 b的值。
是的,这是使用 || 的正确方法 ; 您使用的功能也称为短路评估(因为它会尽早停止评估布尔表达式)
这可行,但如果 s 评估为“虚假”值,您将获得默认值,这可能不是您想要的。一个更健壮但冗长的习语是
d = (typeof s === "undefined") ? "test" : s;
是的,除非 s 允许为空白或 0,它们也是错误值,否则它是正确的
var s = null;
var d = s || "test";
var s = 0;
var d = s || "test";
var s = "";
var d = s || "test";
所有将导致 d 成为“测试”
||
是一个逻辑运算符。当 s 不为 null 时, (s) 的条件为真,因此 d 被赋予 s 的值,否则被赋予“test”
||
是OR
javascript 中的运算符,
所以简单来说a||b
,
对您提出的问题的解释是 id 您只需在 js 中执行类似的操作,您最终将进入 else 块a OR b
if(null)
if(undefined)
所以s||"test"
将意味着 which ever 不是 null 或 undefined 在这种情况下是 test
是的,正确的,|| 符号只是做 OR 的工作。当第一个条件为真时,它会返回那个..否则它将移动到下一个......很简单......