标签: javascript object statements
此声明之间有什么区别
var X = X || {};
而且这个。他们做同样的事情?有性能差异吗?
var X = typeof X === "undefined" ? {} : X;
答案 0 :(得分:2)
他们不一样。
当|| 任何 可能的falsy值时,X会返回该对象。 如果typeof为{},则X检查仅返回undefined。
||
X
typeof
{}
undefined
根据 this test ,undefined检查的速度几乎快了两倍。这可能是因为不需要任何类型的铸造。
答案 1 :(得分:1)
在这种情况下:var X = X || {} X变量将被重新定义,如果它已被声明但是falsy。因此var X = 0; X = X || {};会用对象覆盖0。
var X = X || {}
var X = 0; X = X || {};
0