在JavaScript中有两种不同的方法来创建一个空对象:

var objectA = {}
var objectB = new Object()

脚本引擎处理它们的方式有什么不同吗?有理由使用其中一种而不是另一种吗?

同样,也可以使用不同的语法创建一个空数组:

var arrayA = []
var arrayB = new Array()

当前回答

对象和数组文字语法{}/[]是在JavaScript 1.2中引入的,因此在Netscape Navigator 4.0之前的版本中不可用(并将产生语法错误)。

我的手指仍然默认为new Array(),但我已经很老了。值得庆幸的是,网景3不是今天许多人不得不考虑的浏览器……

其他回答

数组实例化性能

如果你想创建一个没有长度的数组:

Var arr = [];比var arr = new Array()快;

如果你想创建一个具有一定长度的空数组:

var arr = new Array(x);比var arr =[]快;Arr [x-1] = undefined;

有关基准测试,请单击以下内容:https://jsfiddle.net/basickarl/ktbbry5b/

然而,我不知道两者的内存占用,我可以想象,新的Array()占用了更多的空间。

这本质上是一样的。你觉得什么方便就用什么。

Var Obj = {};

这是最常用和最简单的方法。

使用

var Obj = new Obj() 

不是首选。

不需要使用new Object()。

为了简单性、可读性和执行速度,请使用第一个方法(对象字面量方法)。

它们有相同的最终结果,但我只想补充一点,使用文字语法可以帮助人们习惯JSON的语法(JavaScript文字对象语法的字符串化子集),所以这可能是一个很好的实践。

还有一件事:如果忘记使用new操作符,可能会出现细微的错误。因此,使用字面量将帮助您避免这个问题。

最终,这将取决于情况和偏好。

var objectA = {}

更快,而且根据我的经验,更常用,所以最好采用“标准”并节省一些输入。