擬似配列と配列 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 データベース内の数十億のデータを素早くクリーンアップする方法
序文最近、フロントエンドの学習に関する以前のメモを整理したところ、モバイル Web 画面の適応 (r...
1. 計算属性とは何ですか? 簡単に言えば、計算された結果が属性に保存されるもので、キャッシュとして...
目次Vueプロジェクトのパッケージ化、起動、最適化Vueプロジェクトのパッケージ化プロジェクトホステ...
目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...
ある日、内部結合を含む SQL ステートメントの実行速度はそれほど遅くはない (0.1 ~ 0.2)...
序文みなさんこんにちは。CSS ウィザードの alphardex です。以前、海外のウェブサイトを閲...
[インターネット上の移行ファイルをすべて見ると、信頼性が低く、症状のみを治療し、根本的な原因を治療し...
ワーカープロセスは、起動されると、まず自身の動作に必要な環境を初期化し、次に実行する必要があるイベン...
序文現在、フロントエンドは主に webpack の devServer の構成を通じてクロスドメイン...
BEM は、Web 開発に対するコンポーネントベースのアプローチです。ユーザー インターフェイスを独...
Ubuntu サーバーにパッケージをインストールする場合、sudo apt-get install ...
面接官から「NodeJS で複数のプロセスを開始する方法を教えてください」と尋ねられることがあります...
Alibaba Cloud Diskの最後のアップデートからかなり時間が経ちました。ネットユーザー...
優先度両方のケースで同じ条件を設定すると、異なる結果セットが生成される可能性があるのは、優先順位のた...
nginx をコンパイルしてインストールし、一定期間使用した後、現在のバージョンに脆弱性があることや...