two different种方法可以在JavaScript中创建空对象:

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

脚本引擎处理它们的方式有什么不同吗?有什么理由用一个代替另一个吗?

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

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

推荐答案

物体

使用new Object();没有任何好处——而{};可以使代码更紧凑、更可读.

对于定义空对象,它们在技术上是相同的.{}语法更短、更整洁(不那么Java风格),并且允许您立即填充内联对象,如下所示:

var myObject = {
        title:  'Frog',
        url:    '/img/picture.jpg',
        width:  300,
        height: 200
      };

数组

对于数组,使用new Array();[];几乎没有任何好处,只有一个小的例外:

var emptyArray = new Array(100);

创建一个undefined项长的数组,其中所有插槽都包含undefined个,这在某些情况下(例如(new Array(9)).join('Na-Na ') + 'Batman!')可能很好/有用.

我的推荐

  1. 千万不要用new Object();--它比{};要笨重,而且看起来很傻.
  2. 始终使用[];-除非需要快速创建具有预定义长度的"空"array.

Javascript相关问答推荐

如何在不分配整个数组的情况下修改包含数组的行为主体?

使用JavaScript单击上一个或下一个特定按钮创建卡滑动器以滑动单个卡

如何访问Json返回的ASP.NET Core 6中的导航图像属性

使搜索栏更改语言

D3 Scale在v6中工作,但在v7中不工作

当作为表达式调用时,如何解析方法decorator 的签名?

当点击注册页面上的注册按钮时,邮箱重复

Regex结果包含额外的match/group,只带一个返回

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

JQuery Click事件不适用于动态创建的按钮

类构造函数忽略Reaction Native中的可选字段,但在浏览器中按预期工作

Reaction Redux&Quot;在派单错误中检测到状态Mutations

MongoDB受困于太多的数据

如何在Java脚本中对数据进行签名,并在PHP中验证签名?

将Auth0用户对象存储在nextjs类型脚本的Reaction上下文中

如何在AG-Grid文本字段中创建占位符

输入数据覆盖JSON文件

将以前缓存的 Select 器与querySelector()一起使用

MUI-TABLE:MUI表组件中交替行的不同 colored颜色 不起作用

调试jQuery代码以获取所有行的总和(票证类型)