ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript 配列の名前付きプロパティがその長さに影響しないのはなぜですか?

JavaScript 配列の名前付きプロパティがその長さに影響しないのはなぜですか?

Barbara Streisand
リリース: 2024-11-26 07:44:10
オリジナル
773 人が閲覧しました

Why Do Named Properties in JavaScript Arrays Not Affect Their Length?

配列内の名前付きプロパティがオブジェクトのように動作する理由

JavaScript を使用すると、配列を含むさまざまなデータ構造にプロパティを柔軟に割り当てることができます。配列は従来、数値インデックス付きの要素を保持しますが、名前付きプロパティを追加してオブジェクトに似せることもできます。

上記の例では、両方のコード スニペットが配列内の名前付きプロパティに値を割り当てています。

var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";

var myObject = {'A': 'Athens', 'B':'Berlin'};
ログイン後にコピー

両方のメソッドは同等に見え、同じ型のオブジェクトを生成しますが、根本的な違いがあります。

配列プロパティとオブジェクトのプロパティ

配列は数値インデックス付きデータ用に設計されており、数値以外のキーを追加すると、意図した機能が中断されます。名前付きプロパティはシームレスに追加されるように見えますが、実際には配列内の要素としてではなく、配列オブジェクト上のプロパティとして存在します。

配列長への影響

この不一致は、配列内の要素数を返す配列の長さプロパティをチェックすると明らかです。名前付きプロパティを配列に追加しても、配列の長さは変更されません。たとえば、次のコードでは:

var myArray = Array();
myArray['A'] = "Athens";
myArray['B'] = "Berlin";

alert(myArray.length);
ログイン後にコピー

配列には要素が追加されておらず、配列オブジェクトにはプロパティのみが追加されているため、アラートには「0」が表示されます。この動作は、数値以外のキーを追加しても長さプロパティに影響しないオブジェクトとは異なります。

したがって、名前付きプロパティを配列に追加すると便利かもしれませんが、従来のプロパティとの制限と潜在的な違いを理解することが重要です。オブジェクトの動作。数値以外のインデックス付きデータの場合は、適切な機能を確保し、予期しない結果を回避するために、代わりにオブジェクトを使用する必要があります。

以上がJavaScript 配列の名前付きプロパティがその長さに影響しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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