[英](obj || {}) vs Object(obj)
在(1)和(2)之间是否存在任何重要的差异(语义,性能相关等)?
var obj = obj || {};
var obj = Object(obj);
语境。 第一个是我在Django的模板和我的js文件中共享变量的方式。 我刚刚看到Rauschmayer 2014中的一节(“转换布尔值,数字,字符串和对象的函数”,第79页),其中描述了Object(obj)
,如下所示:
obj
如果obj
是一个对象, {}
如果obj
undefined
或为null
, obj
是原始值。 鉴于(非常非正式)语义(特别是前两个条款),在我看来,我们可以使用(2)我们将使用的任何地方(1),但我不完全确定这将产生什么后果。
Rauschmayer,Axel(2014) Speaking JavaScript (免费在线阅读)。
是的,有一点不同,正如你给出的引用已经提到的那样。 当obj
是一个原语时,第一个表示法将返回原语本身。 第二个将返回一个包装原语,它是一个对象。
如果代码的其余部分依赖于obj
作为对象,则第二种表示法更具防御性。
但话说回来,第一个符号更常见,人们可能想知道如何将原始值分配给名为obj
的变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.