鉴于这段JavaScript代码…
var a; var b = null; var c = undefined; var d = 4; var e = 'five'; var f = a || b || c || d || e; alert(f); // 4
有人可以向我解释这种技术叫什么(我的最佳猜测是这个问题的标题!)?以及它如何/为什么确切起作用?
我的理解是,f将为变量分配第一个变量的最接近的值(从左到右),该变量的值不为null或未定义,但是我没有设法找到有关此技术的大量参考资料,并且看到它用了很多。
f
另外,这项技术是否专门针对JavaScript?我知道在PHP中执行类似操作会导致f具有真正的布尔值,而不是其d自身值。
d
如果变量是falsy,则可以指定一个默认值,在这种情况下为的值。yx
yx
JavaScript中的布尔运算符可以返回操作数,而不是像其他语言一样总是返回布尔结果。
||如果第一个操作数为falsy,则逻辑OR运算符()返回其第二个操作数的值,否则返回第一个操作数的值。
||
例如:
"foo" || "bar"; // returns "foo" false || "bar"; // returns "bar"
Falsy值是谁要挟到false布尔上下文中使用时,它们是0,null,u``ndefined,一个空字符串,NaN当然false。
Falsy
false
0
null
u``ndefined