プロパティを取得するjsオブジェクトのメソッド(.と[]メソッド)の原理

  js オブジェクトのプロパティを取得する方法は 2 つあります: 1. を使用する方法 2. [] を使用する方法

  オブジェクト プロパティを取得する 2 つの基本的な方法のコードは次のとおりです。

// 通过.方式获取属性值,key是静态的
var a = {name: "zhang", age: 18};
console.log(a.name);
 
// 通过[]获取属性值, key是动态的,可以是字符串,或者数字的形式
var b = {"apple": 3, "pear": 2}
var c = {1: "number1", 2: "number2"}
console.log(b["apple"]);
console.log(c[1]);  // 注意这里的写法跟数组容易混淆,c仍是对象,不是数组
 
// 获取对象所有key的方法
console.log(Object.keys(b));  // 输出[ 'apple', 'pear' ]

配列とオブジェクトの本質は、変数を呼び出して格納された複数の値を表示することであるため、最初は、配列とオブジェクト関連の使用方法に大きな違いはありません。

この 2 つの主な違いは、配列の添字が連続した数字であり、ヒープ メモリに順番に格納されること、オブジェクトが必ずしも書き込み順に格納されるとは限らず、データが主に 1 対 1 で取得されることです。 -キーと値の間の1つの対応

原則として、オブジェクトと配列は . または [] を介して取得できますが、命名規則に問題があります

以下、配列の実際の応用が使えないことを最下層から説明します 要素を取得する理由

オブジェクト/配列. 属性 このメソッドは要素の要件を取得します. 背後の属性名は js 命名規則に準拠する必要があります.

                                array.index の場合、インデックスは数値であるため、js では、名前を数値で開始できないと規定されています。

                                したがって、仕様に準拠していない場合、配列を使用して要素を取得することはできません。

                                対応する長さは命名規則に準拠しているため、属性値は arr.length を介して取得できます。

 以下は、配列とオブジェクトの両方が[]を介して要素を取得できる理由を最下層から説明します

Object/array[attribute][] [] の数値型属性は暗黙的に文字列に変換されるため、array.Index を使用できます

                                したがって、このメソッドを使用して配列内の要素を取得できます

                                オブジェクト/配列[数値型]の場合、数値型は文字列に変換されます

                                オブジェクト/配列 [変数]、変数に格納されている値に従ってプロパティを検索します

                                オブジェクト/配列 [""]、内部のプロパティ名は、配列インデックスなどの js 仕様に準拠していない可能性があります

おすすめ

転載: blog.csdn.net/weixin_46669844/article/details/127972989