擬似配列と配列 JavaScript では、5 つのプリミティブ データ型を除き、関数を含め、その他すべてはオブジェクトです。 オブジェクトと配列の関係違いについて話す前に、JavaScript のプロトタイプ継承という別の知識について触れておく必要があります。 JavaScript の組み込みコンストラクターはすべて Object.prototype から継承します。 この前提の下では、new Array() または [] を使用して作成された配列オブジェクトは Object.prototype のプロパティ値を持つことがわかります。 var obj = {}; // Object.prototype のプロパティ値を持ちます var arr = []; //Array.prototypeのプロパティはObject.prototypeから継承されるため、配列リテラルを使用して配列が作成されます。 //するとArray.prototypeとObject.prototypeの両方のプロパティ値を持つことになります オブジェクトと配列の最初の違いは、オブジェクトには配列の Array.prototype プロパティ値がないことです。 配列とは何か配列には、オブジェクトにはない基本的な機能であるインデックスがあります。コードの一部を見てみましょう。 var obj = {}; var arr = []; obj[2] = 'a'; arr[2] = 'a'; console.log(obj[2]); // => a console.log(arr[2]); // => a console.log(obj.length); // => 未定義 console.log(arr.length); // => 3
疑似配列とは何ですか?
疑似配列は、配列のような長さ属性を持ち、さらに 0、1、2、3 などの属性も持つオブジェクトです。配列のように見えますが、配列ではありません。例: var 偽の配列 = { "0": "最初", "1": "秒", "2": "3番目", 長さ: 3 }; (var i = 0; i < fakeArray.length; i++) { コンソールにログ出力します。 } Array.prototype.join.call(fakeArray,'+'); 一般的な疑似配列は次のとおりです。
疑似配列はオブジェクトですが、実際の配列は配列です。 疑似配列の目的は、通常のオブジェクトが次のような配列の多くのメソッドを通常どおりに使用できるようにすることです。 var arr = Array.prototype.slice.call(引数); Array.prototype.forEach.call(引数, 関数(v) { // 引数オブジェクトをループします }); // 押す //いくつかの // 毎 // フィルター // マップ // ... 上記は、配列プロトタイプ メソッドを借用するときに配列リテラルを使用することで簡略化できます。 var obj = { 0: 'あ'、 1: 'b'、 2: 'c'、 長さ: 3 } ;[].push.call(obj, 'd') コンソールログ([].slice.call(obj)) ;[].forEach.call(obj, 関数(num, インデックス) { コンソール.log(数値) }) 両者の違い1. 長さ:
2. 方法の使用:
まとめ オブジェクトには配列プロパティ値がありません。プロトタイプの型は Object ですが、配列の型は Array です。 要約するJavaScript の擬似配列と配列の使い方と違いについての記事はこれで終わりです。JavaScript の擬似配列と配列に関するより詳しい内容については、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Tomcat サービスに Java 起動コマンドを追加する方法
>>: MySQL データベース内の数十億のデータを素早くクリーンアップする方法
PS: 最近、nginx を詳細に紹介している <<High-Performance ...
MySQL をクリーンアンインストールします。個人的にテストしたところ、今回はようやくうまくいきま...
序文js を使用して、年の回転選択効果を実現します。では早速、写真を見てみましょう。 1. アイデア...
目次使用シナリオ達成方法1. 動的コンポーネントを配置する場所2. コンポーネントのインスタンスを取...
水平方向では、行の配置を左、中央、右に設定できます。基本的な構文<TR ALIGN="...
1. エフェクトHTMLを送信する <div id="送信ボタン">...
1 はじめにデータベースを設計する場合、画像や音声ファイルをデータベースに挿入することは避けられませ...
私が使用しているデータベースはMySQLデータベースバージョン5.7ですまずデータベーステーブルを自...
目次序文1. ローカルポート転送2. リモートポート転送3. 動的ポート転送(SOCKS5) 4. ...
目次ライフサイクルの変化反応的な参照vue2.x では ref を使用して要素タグを取得します。vu...
DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...
解決策: システム内のすべての .vscode 関連プロセスを終了します (または、remote-s...
この記事では、ExcelファイルをMySQLデータベースにインポートする方法を参考までに紹介します。...
目次1. ACIDの特性トランザクション制御構文3. トランザクション同時実行例外1. ダーティリー...
仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...