3 回答
TA贡献1951条经验 获得超3个赞
什么是双管操作符( ||
)?
||
OR
如果第一个值是 false
,它检查第二个值。如果是 true
,它回来了 true
如果是 false
,它回来了 false
.如果第一个值是 true
,它总是会回来 true
无论第二个值是什么。
function or(x, y) { if (x) { return true; } else if (y) { return true; } else { return false; }}
| true false ------+---------------true | true true false | true false
它在JavaScript中有何不同?
||
(function(){}) || {}
0
, ""
, null
, undefined
false
true
.
true
||
如果第一个值是 法尔西
,它回来了 第二值.
如果第一个值是 特鲁西
,它回来了 第一值.
||
function or(x, y) { if (x) { return x; } else { return y; }}
x
x
if
(function(x, y) { var eitherXorY = x || y; if (eitherXorY) { console.log("Either x or y is truthy."); } else { console.log("Neither x nor y is truthy"); }}(true/*, undefined*/));
"Either x or y is truthy."
.
x
eitherXorY
y
"Either x or y is truthy."
y
"Neither x nor y is truthy"
.
实际问题
||
x = x || y
x
x
x
y
x
undefined
null
function badFunction(/* boolean */flagA) { flagA = flagA || true; console.log("flagA is set to " + (flagA ? "true" : "false"));}
false
flagA
true
false
)? true
.flagA
false
.
flagA
undefined
function goodFunction(/* boolean */flagA) { flagA = typeof flagA !== "undefined" ? flagA : true; console.log("flagA is set to " + (flagA ? "true" : "false"));}
TA贡献1821条经验 获得超4个赞
var foobar = foo || default;
foo
default
var foobar = foo || bar || something || 42;
添加回答
举报