ホームページ  >  記事  >  ウェブフロントエンド  >  Array.prototype.push が有用なデータではなく新しい配列長を返すのはなぜですか?

Array.prototype.push が有用なデータではなく新しい配列長を返すのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-22 09:43:03894ブラウズ

Why Does Array.prototype.push Return the New Array Length Instead of Useful Data?

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

ECMA-262 で導入された Array.prototype.push、第 3 版では、要素が追加された後の配列の新しい長さを表す Number を返します。この設計上の選択は、直接的に役立つ情報ではないため、開発者を困惑させています。

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。