为什么 Array.prototype.push 返回新的长度而不是有用的数据
Array.prototype.push,在 ECMA-262 中引入,第三版,返回一个数字,表示附加元素后数组的新长度。这种设计选择让开发人员感到困惑,因为它不是直接有用的信息。
来自 TC39 沟通渠道的历史证据揭示了这一决定。在 JS1.2 (Netscape 4) 中,推送是根据 Perl 的函数建模的,其行为与 Perl 4 类似,返回最后推送的项目。然而,在 JS1.3 (Netscape 4.06) 中,push 进行了更改以符合 Perl 5 约定,现在返回新的数组长度。
根据原始 jsarray.c 源代码,此修改是有意的:
/* * If JS1.2, follow Perl4 by returning the last thing pushed. Otherwise, * return the new array length. */
这种设计选择可能源于希望提供跨 JavaScript 版本的一致性并与既定的 Perl 5 行为保持一致。虽然返回新长度可能不会立即有价值,但它确实确保了推送操作后数组大小的清晰性。
以上是为什么 Array.prototype.push 返回新的数组长度而不是有用的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!