1. よくある問題:
JSでオブジェクトの型を判定する場合、通常typeofが使われるのですが、このとき問題となるのは、typeof()が配列を識別する際にオブジェクトを返すため、JSで判定することです
。オブジェクトが配列であるかどうかには、いくつかの特別な処理方法が必要です。私がまとめた 6 つの処理方法を以下に紹介します。
2. 単刀直入に
開発中にオブジェクトが配列であるかどうかを判断するには、次の関数を使用することをお勧めします:
function isArray(obj){ if(Array.isArray){ return Array.isArray(obj); }else{ return Object.prototype.toString.call(obj)==="[object Array]"; } }
上記の関数は、熱心な人にとって便利です問題を解決するには、試験官があなたに関する包括的な知識を必要とする可能性があるため、以下で 6 つの方法について詳しく説明します。
(1) 方法 1: toString メソッドを使用します
toString() メソッドを呼び出して変数を変換してみます。これは、その型を表す文字列です。このメソッドは実数の配列に対して実行可能です。パラメータ オブジェクトが文字列に変換され、[object Arguments] が返されると、変換は失敗します。さらに、数値の長さの属性を含むオブジェクト クラスの場合も変換は失敗します。
メソッドは次のとおりです:
nbsp;html> <title>Array的判断方法</title> <meta> <script> function isArrayOne(arr){ return <span style="color:#cc0000;">Object.prototype.toString.call(arr) === "[object Array]"; } var obj = {"k1":"v1"}; var arr = [1,2]; console.log("对象的结果:"+isArrayOne(obj)); console.log("数组的结果:"+isArrayOne(arr)); </script>
結果は図に示すようになります:
注: 「==」の代わりに「===」を使用することをお勧めします。 、そのほうが効率が良いからです。(2) 方法 2: isArray を通じて:
JavaScript 1.8.5 (ECMAScript 5) を使用し、この関数がサポートされていれば、変数名 .isArray() でこの目的を達成できます。実際、isArray は
方法 1カプセル化が使用されます。
使用方法は非常に簡単です:
Array.isArray(obj); //objは検出されるオブジェクトです
trueまたはfalseを返します、trueの場合は配列です
(3) 方法3:
instanceof 演算子の判断を使用します。注:instanceof 演算子の左側は子オブジェクト (テスト対象のオブジェクト)、右側は親コンストラクター (ここでは Array)、
つまり子です。親コンストラクターのオブジェクトのインスタンス
instance: インスタンス: すべて new で構築されます。 function() によって作成されたオブジェクトは、コンストラクターのインスタンスと呼ばれます。私は長い間混乱していたので、コードを直接見ることをお勧めします。
nbsp;html> <meta> <meta> <meta> <meta> <meta> <title>Document</title> <script> var obj = {"k1":"v1"}; var arr = [1,2]; console.log("Instanceof处理对象的结果:"+(obj instanceof Array)); console.log("Instanceof处理数组的结果:"+(arr instanceof Array)); </script>
実行結果は以下の通りです:
(4) isPrototypeOf() 関数を使用します原則: オブジェクトが配列のプロトタイプであるかどうか (または、直接配列だけでなくプロトタイプチェーン内にあるかどうかを検出します)親オブジェクトだけでなく、プロトタイプ チェーン全体のすべての親オブジェクトも対象となります)使用方法:parent.isPrototypeOf (child) は、親が子のプロトタイプであるかどうかを検出します isPrototypeOf によって実装される関数に注意してください。 () 関数は instantcof 演算子と非常によく似ています。
具体的なコード:
Array.prototype.isPrototypeOf(arr) //true は配列を意味し、false は配列ではありません
(5) コンストラクターを使用します
具体的なコード:
nbsp;html> <meta> <meta> <meta> <meta> <meta> <title>Document</title> <script> var obj = {'k':'v'}; var t1 = new Array(1); var t2 = t1; console.log(obj.constructor == Array); console.log(t1.constructor == Array); console.log(t2.constructor == Array); </script>結果は次のとおりです
nbsp;html> <meta> <meta> <meta> <meta> <meta> <title>Document</title> <script> function isArrayFour(arr){ if(typeof(arr)==="object"){ if(arr.concat){ return "This is Array"; }else{ return "This Not Array"; } } } var arr = [1]; var obj = {'k':'v'}; console.log(typeof(arr)); console.log(typeof(obj)); console.log(isArrayFour(arr)); console.log(isArrayFour(obj)); </script>

結果は次のとおりです:
このメソッドには実際には限界があります。
この属性がオブジェクト内で誤って定義されたらどうなるでしょうか?
JS で Object と Aarry を区別する 6 つの方法の上記のまとめは、編集者が共有したすべての内容です。参考にしていただければ幸いです。また、PHP 中国語 Web サイトをサポートしていただければ幸いです。 JS の Object メソッドと Aarry メソッドの区別の概要に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。
CおよびJavaScriptは、WebAssemblyを介して相互運用性を実現します。 1)CコードはWebAssemblyモジュールにコンパイルされ、JavaScript環境に導入され、コンピューティングパワーが強化されます。 2)ゲーム開発では、Cは物理エンジンとグラフィックスレンダリングを処理し、JavaScriptはゲームロジックとユーザーインターフェイスを担当します。

JavaScriptは、Webサイト、モバイルアプリケーション、デスクトップアプリケーション、サーバー側のプログラミングで広く使用されています。 1)Webサイト開発では、JavaScriptはHTMLおよびCSSと一緒にDOMを運用して、JQueryやReactなどのフレームワークをサポートします。 2)ReactNativeおよびIonicを通じて、JavaScriptはクロスプラットフォームモバイルアプリケーションを開発するために使用されます。 3)電子フレームワークにより、JavaScriptはデスクトップアプリケーションを構築できます。 4)node.jsを使用すると、JavaScriptがサーバー側で実行され、高い並行リクエストをサポートします。

Pythonはデータサイエンスと自動化により適していますが、JavaScriptはフロントエンドとフルスタックの開発により適しています。 1. Pythonは、データ処理とモデリングのためにNumpyやPandasなどのライブラリを使用して、データサイエンスと機械学習でうまく機能します。 2。Pythonは、自動化とスクリプトにおいて簡潔で効率的です。 3. JavaScriptはフロントエンド開発に不可欠であり、動的なWebページと単一ページアプリケーションの構築に使用されます。 4. JavaScriptは、node.jsを通じてバックエンド開発において役割を果たし、フルスタック開発をサポートします。

CとCは、主に通訳者とJITコンパイラを実装するために使用されるJavaScriptエンジンで重要な役割を果たします。 1)cは、JavaScriptソースコードを解析し、抽象的な構文ツリーを生成するために使用されます。 2)Cは、Bytecodeの生成と実行を担当します。 3)Cは、JITコンパイラを実装し、実行時にホットスポットコードを最適化およびコンパイルし、JavaScriptの実行効率を大幅に改善します。

現実世界でのJavaScriptのアプリケーションには、フロントエンドとバックエンドの開発が含まれます。 1)DOM操作とイベント処理を含むTODOリストアプリケーションを構築して、フロントエンドアプリケーションを表示します。 2)node.jsを介してRestfulapiを構築し、バックエンドアプリケーションをデモンストレーションします。

Web開発におけるJavaScriptの主な用途には、クライアントの相互作用、フォーム検証、非同期通信が含まれます。 1)DOM操作による動的なコンテンツの更新とユーザーインタラクション。 2)ユーザーエクスペリエンスを改善するためにデータを提出する前に、クライアントの検証が実行されます。 3)サーバーとのリフレッシュレス通信は、AJAXテクノロジーを通じて達成されます。

JavaScriptエンジンが内部的にどのように機能するかを理解することは、開発者にとってより効率的なコードの作成とパフォーマンスのボトルネックと最適化戦略の理解に役立つためです。 1)エンジンのワークフローには、3つの段階が含まれます。解析、コンパイル、実行。 2)実行プロセス中、エンジンはインラインキャッシュや非表示クラスなどの動的最適化を実行します。 3)ベストプラクティスには、グローバル変数の避け、ループの最適化、constとletsの使用、閉鎖の過度の使用の回避が含まれます。

Pythonは、スムーズな学習曲線と簡潔な構文を備えた初心者により適しています。 JavaScriptは、急な学習曲線と柔軟な構文を備えたフロントエンド開発に適しています。 1。Python構文は直感的で、データサイエンスやバックエンド開発に適しています。 2。JavaScriptは柔軟で、フロントエンドおよびサーバー側のプログラミングで広く使用されています。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 中国語版
中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
