声明对象的两个语句之间的差异

Difference between two statements that declare an object

本文关键字:语句 之间 两个 对象 声明      更新时间:2023-09-26

这个语句有什么区别

var X = X || {};

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

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

它们不一样。

X任何可能的假值时,||将返回对象。
typeof检查只会在X undefined时返回{}

根据该测试undefined检查的速度几乎是其两倍。这可能是因为不需要类型转换。

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