声明对象的两个语句之间的区别

时间:2016-02-05 14:11:49

标签: javascript object statements

此声明之间有什么区别

var X = X || {};

而且这个。他们做同样的事情?有性能差异吗?

var X = typeof X === "undefined" ? {} : X;

2 个答案:

答案 0 :(得分:2)

他们不一样。

|| 任何 可能的falsy值时,X会返回该对象。
如果typeof{},则X检查返回undefined

根据 this test undefined检查的速度几乎快了两倍。这可能是因为不需要任何类型的铸造。

答案 1 :(得分:1)

在这种情况下:var X = X || {} X变量将被重新定义,如果它已被声明但是falsy。因此var X = 0; X = X || {};会用对象覆盖0