ホームページ > 記事 > ウェブフロントエンド > Array.prototype.push が追加された項目ではなく長さを返すのはなぜですか?
Array.prototype.push の奇妙なケース: 便利なものではなく長さを返す理由
Array.prototype.push は1 つ以上の要素を含む配列を拡張する JavaScript メソッド。新しく追加された項目または変更された配列自体を返すより直感的な対応物とは異なり、push は興味深いことに配列の新しい長さを返します。この型破りな動作により、現在の実装に至った設計上の決定について疑問が生じています。
歴史的背景
この設計選択の背後にある理論的根拠を明らかにするために、プッシュの歴史。 TC39 の通信ハブが詳述したように、プッシュは Perl の配列操作関数に触発されて、1997 年に JavaScript 1.2 (Netscape 4) でデビューしました。当初、push は Perl 4 の規則に従い、最後にプッシュされた項目を返しました。ただし、JavaScript 1.3 (Netscape 4.06) では、プッシュ シフトの動作が Perl 5 に合わせて変更され、配列の新しい長さが返されました。
Rationalization
なぜ新しい長さを返したのか追加された項目や変更された配列を返すよりも適切な長さと思われますか?残念ながら、この疑問は未解決のままです。過去の記録には、Perl 4 からのこの逸脱の背後にある理由に関する詳細がほとんど記載されていません。ただし、次のような潜在的な考慮事項については推測できます:
代替オプション
デザイナーが新しい長さを返すことを選択しなかった場合、他のオプション
結論
新しい長さを返す Array.prototype.push の背後にある具体的な理論的根拠は完全には明らかではありませんが、その歴史的な起源は Perl であり、単純さと一貫性の潜在的な利点が影響を与えている可能性があります。実装。この設計上の決定は開発者の期待と完全に一致しない可能性がありますが、JavaScript で配列を操作するための明確に定義された一貫した動作を提供します。
以上がArray.prototype.push が追加された項目ではなく長さを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。