Array.prototype.push 的奇怪情况:为什么它返回长度而不是更方便的东西
Array.prototype.push 是一个使用一个或多个元素扩展数组的 JavaScript 方法。与返回新添加的项或修改的数组本身的更直观的对应项不同,push 奇怪地返回数组的新长度。这种非常规的行为引发了人们对导致其当前实施的设计决策的质疑。
历史背景
为了揭示这种设计选择背后的基本原理,我们深入研究了推的历史。正如 TC39 通信中心所述,受 Perl 数组操作函数的启发,推送于 1997 年在 JavaScript 1.2 (Netscape 4) 中首次亮相。最初,push 返回最后推送的项目,遵循 Perl 4 约定。然而,在 JavaScript 1.3 (Netscape 4.06) 中,push 改变了其行为以与 Perl 5 保持一致,返回数组的新长度。
合理化
为什么返回新的长度长度被认为比返回附加项或变异数组更合适?不幸的是,这个问题仍然没有答案。历史记录没有提供关于这种与 Perl 4 的偏差背后的原因的详细信息。但是,我们可以推测一些潜在的考虑因素:
替代选项
如果设计师没有选择返回新长度,其他选项可以考虑:
结论
虽然 Array.prototype.push 返回新长度的具体原理并不完全清楚,但它在 Perl 中的历史起源以及简单性和一致性的潜在优势可能影响了它执行。虽然此设计决策可能与开发人员的期望并不完全一致,但它为在 JavaScript 中操作数组提供了定义明确且一致的行为。
以上是为什么 Array.prototype.push 返回长度而不是附加项?的详细内容。更多信息请关注PHP中文网其他相关文章!