gpt4 book ai didi

javascript - 为什么使用 {} 而不是 new Object() 并使用 [] 而不是 new Array() 和 true/false 而不是 new Boolean()?

转载 作者:可可西里 更新时间:2023-11-01 01:32:23 27 4
gpt4 key购买 nike

许多人说您应该避免使用 new Object、new Array(),而是使用 {}。 [] 和真/假。

使用字面量构造来获取对象或数组的新实例而不是使用 new 有什么好处?我知道 Crockford 不喜欢新的,但这是主要论点吗?

最佳答案

与使用各自的构造函数相比,对象和数组文字的优点是:

  • 更短、更易读
  • 更安全:当 ArrayObject 构造函数被重写时,文字仍然有效
  • 可能会更快,但它不太可能成为主要考虑因素(任何瓶颈几乎肯定会起源于代码中的其他地方)

在数组的情况下,文字还有一个额外的优势:不可能单独使用 Array 构造函数创建具有单个成员的数组。例如,[3] 将创建一个数组,其中一个元素是数字 3,而 new Array(3) 将创建一个长度为 3 的数组。

更新:问题已被编辑,以下段落不再相关。

关于 bool 值,您似乎有一个误解:new Boolean(false)false 不一样。 Boolean() 构造函数创建一个 bool 对象,而 falsetrue 是 bool 值基元。事实上,new Boolean(false) 在被强制转换为 bool 值(例如,if 语句)时计算结果为 true。简而言之,很少有理由使用 Boolean() 构造函数。请改用 truefalse。类似地,其他原语(例如字符串和数字)具有相应的 String()Number() 构造函数,它们生成 StringNumber 不同于原始字符串和数字的对象,通常应避免使用。

关于javascript - 为什么使用 {} 而不是 new Object() 并使用 [] 而不是 new Array() 和 true/false 而不是 new Boolean()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4292048/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com