当前位置:   jquery > 正文

为什么Array.prototype.push返回新的长度而不是更有用的东西?

javascript,specifications,return-type,perl,https,c#,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

自ECMA-262第3版推出以来,该Array.prototype.push方法的返回值为Number:

15.4.4.7 Array.prototype.push([item1 [,item2 [,...]]])

参数按照它们出现的顺序附加到数组的末尾.作为调用的结果,返回数组的新长度.

返回数组的新长度背后的设计决策是什么,而不是返回可能更有用的东西,例如:

对新添加的项目的引用

变异数组本身

为什么这样做,并且是否有关于如何做出这些决定的历史记录?



1> romellem..:

我将其发布在TC39的通信中心中,并且能够进一步了解其背后的历史:

pushpopshiftunshift最初在1997年加入到JS1.2(网景4)。

在Perl中以类似命名的函数为模型。

JS1.2 push遵循Perl 4约定,该约定返回最后推送的项目。在JS1.3(1998年夏季的Netscape 4.06)中,更改了推力,以遵循返回数组新长度的Perl 5约定。

参见https://dxr.mozilla.org/classic/source/js/src/jsarray.c#804

/*
 * If JS1.2, follow Perl4 by returning the last thing pushed.  Otherwise,
 * return the new array length.
 */

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号