Array.prototype.push がより有益なデータではなく、更新された配列の長さを返すのはなぜですか?

DDD
リリース: 2024-10-22 10:54:29
オリジナル
573 人が閲覧しました

Why Does Array.prototype.push Return the Updated Array Length Instead of More Informative Data?

Array.prototype.push がより有用なデータではなく新しい長さを返す理由

ECMA-262、第 3 版、配列で導入されました。 prototype.push は、更新された配列の長さを表す Number を一貫して返します。ただし、追加された項目への参照や変更された配列自体など、潜在的により価値のある情報を提供するのではなく、なぜこのように設計されたのかという疑問が生じます。

履歴コンテキスト

この設計上の決定の背後にある理由を理解するために、プッシュの歴史と Perl におけるそれに相当するものを詳しく調べます。 1997 年に Netscape 4 の JS1.2 に追加されたこれらのメソッドは、対応する Perl メソッドからインスピレーションを得たものです。

当初、JS1.2 のプッシュは、最後に追加された要素を返すことによって Perl 4 に準拠していました。ただし、JS1.3 では、新しい配列の長さを返す Perl 5 の規則に合わせて変更されました。この変更は、JS バージョンに基づいて Perl 4 と Perl 5 の動作を区別する jsarray.c ソース コードに反映されました。

配列の長さを返す理由

この歴史的洞察は、配列の新しい長さを返す決定が、JavaScript の初期開発に影響を与えた Perl 5 標準に沿って行われたことを示唆しています。さらに、長さを返すことは、潜在的な混乱や曖昧さを招くことなく、プッシュ操作の結果を示す明確で一貫した方法であると考えられていた可能性があります。

代替考慮事項

追加された項目または変更された配列自体への参照を返すことには利点があります。これにより、新しく追加された要素への直接アクセスが可能になったり、連鎖操作が可能になったりする可能性があります。ただし、これらの代替案には潜在的な欠点もあります。

  • 個々の項目への参照を返すと、追加されたすべての項目を取得するのがより冗長になる可能性があります (特に大きな配列の場合)。
  • 変更された配列を返すと、次のような問題が発生します。元の配列と更新されたバージョンの区別が難しくなるため、偶発的な突然変異が発生する可能性があります。

結論

Array.prototype.push新しい配列の長さのメソッドの戻り値は、最も広範な情報を提供しない可能性がありますが、その設計は Perl の規則と一貫しており、操作の結果を明確に示します。代替アプローチには利点もありますが、JavaScript の初期の選択に影響を与えた可能性がある潜在的な欠点もあります。

以上がArray.prototype.push がより有益なデータではなく、更新された配列の長さを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート