ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript配列の詳しい解説_基礎知識

JavaScript配列の詳しい解説_基礎知識

WBOY
WBOYオリジナル
2016-05-16 16:33:101613ブラウズ

経験豊富な開発者であれば、この質問は比較的単純だと思われるかもしれませんが、場合によっては、この質問の方が興味深いと感じることがあります。

まず、配列の定義を見てみましょう: 「配列は、整数を「キー」として使用してアクセスできる値のリストです。リストは 0 から始まり、次に続きます。 、以下ではオブジェクトを使用して配列の定義を記述します:

コードをコピーします コードは次のとおりです:

var arr = ["ベンジャミン", "zuojj"];
//=>
var arr = {
"0": "ベンジャミン",
"1": "ズオジ"
};

上記の例を見ると、配列の長さ、何かが足りないようにいつも感じます。

コードをコピーします コードは次のとおりです:

var arr = {
"0" : "ベンジャミン",
"1" : "ズオジ"、
「長さ」: 2
};

JavaScript 言語では、配列は特別なオブジェクトであることがわかります。配列にアクセスするメソッドを使用してオブジェクトのプロパティにアクセスできると同時に、配列はオブジェクトと同様にプロパティを追加することもできます。次の例を見てください:

コードをコピーします コードは次のとおりです:

var arr = {
"0" : "ベンジャミン",
"1" : "ズオジ"、
「長さ」: 2
};
//出力: "ベンジャミン"
console.log(arr[0]);
//出力: 2
console.log(arr.length);

var arr = ["ベンジャミン", "zuojj"];
arr.url = "www.jb51.net";
//出力: "www.jb51.net"
console.log(arr.url);
//出力: 2
console.log(arr.length);

配列のメソッドを見てみましょう。配列には、indexOf/slice/splice/sort などの多くの操作可能なメソッドがあります。これらのメソッドが実際には Array.prototype に存在することがわかっています。以下の例を見てください:

コードをコピーします コードは次のとおりです:

var arr = ["ベンジャミン", "zuojj"];
//出力: 1
console.log(arr.indexOf("zuojj"));
arr.indexOf = function(str) {
Return "これはカスタマイズされたindexOfです!";
}
//出力: 「カスタマイズされたindexOfです!」
console.log(arr.indexOf("zuojj"));

実際、オブジェクトを使用してすべての配列メソッドをオーバーロードできます。以下のプッシュメソッドの例を参照してください:

コードをコピーします コードは次のとおりです:

var arr = {
長さ: 0、
プッシュ: function(val) {
//代入
This[this.length] = val;
//配列の長さを更新します
This.length = 1;
// 配列の長さを返します
return this.length;
}
}
arr.push("zuojj");
arr.push("ベンジャミン");
//オブジェクト {0: "zuojj"、1: "benjamin"、長さ: 2、プッシュ: 関数}
console.log(arr);

しかし、再実装できないことが 1 つあります。それは、配列のリテラル定義です。

コードをコピーします コードは次のとおりです:
var arr = ["benjamin", "zuojj"] ;

しかし、代わりにコンストラクターを使用することもできます:

コードをコピー コードは次のとおりです。
var arr = new Array("benjamin", "zuojj ");

配列のリテラル定義が適用されない場合は、独自の方法で配列の定義を再定義できます。

コードをコピーします コードは次のとおりです:
var myArr = new CustomArray("benjamin", "zuojj ");

JavaScript で配列がどのように機能するかがわかりました。皆さんのお役に立てれば幸いです。

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