很多时候我可以看到变量设置如此
var d = d || {}
或
var = var || []
想到了一些问题
答案 0 :(得分:3)
如果左侧是 falsy (例如undefined
,如果没有传递函数参数,则会评估右侧)。评估的最后一面是用JavaScript返回的,与返回 true 或 false 的某些语言不同。这很方便,为什么要使用这个结构。
使用它的主要原因是,如果未传递函数的参数,则提供合理的默认值。
var a = function(b) {
b = b || [];
}
在上面的代码示例中,如果未传递b
,则默认为空白数组([]
)。但是,如果我通过0
或其他 falsy ,它也会成为空白数组。小心这个。
答案 1 :(得分:2)
||
运算符如果为真则返回左侧,如果左侧不为真,则返回右侧。
所以:
var d = d || {}
快速说一句:
var d;
if (!d) {
d = {};
}