ホームページ > 記事 > ウェブフロントエンド > Web 開発で配列を検出する方法
今回は、Web 開発で配列を検出する方法と、Web 開発で配列を検出するための 注意事項 について説明します。実際のケースを見てみましょう。
JS における最も古いクロスドメインの問題の 1 つは、フレーム間で配列をやり取りすることです。開発者は、このシナリオでは、instanceof Array が常に正しい結果を返すわけではないことにすぐに気づきました。上で述べたように、各フレームには独自の Array// 采用鸭式辨型的方法检测数组function isArray(value) { return typeof value.sort === "function"; }この検出方法は、sort() メソッドを含むオブジェクトが配列だけであるという事実に基づいています。もちろん、 isArray() に渡されたパラメータが sort() メソッドを含むオブジェクトである場合も true を返します。 JS で配列型を検出する方法については多くの研究が行われ、最終的に Juriy Zaytsev (Kangax としても知られる) が洗練されたソリューションを考案しました。
function isArray(value) { return Object.prototype.toString.call(value) === "[object Array]"; }Kangax は、値に対して組み込みの toString() メソッドを呼び出すと、すべてのブラウザで標準の
string 結果が返されることを発見しました。配列の場合、配列インスタンスが構築されたフレームに関係なく、返される文字列は「[object Array]」です。 Kangax が提供したソリューションはすぐに人気となり、ほとんどの JS クラス ライブラリ に採用されました。
このメソッドは、組み込みオブジェクトを識別する場合に非常に便利ですが、カスタム オブジェクトにはこのメソッドを使用しないでください。たとえば、このメソッドを組み込み JSON オブジェクトで使用すると、「[object JSON]」が返されます。 それ以来、ECMAScript5 は Array.isArray() を JS に正式に導入しました。唯一の目的は、値が配列であるかどうかを正確に検出することです。 Kangax の関数と同様に、Array.isArray() もフレーム間で渡される値を検出できるため、現在多くの JS ライブラリがこのメソッドを同様に実装しています。 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトその他の関連記事に注目してください。
推奨読書:Web開発でグローバル変数の使用を避ける必要があるのはなぜですか
以上がWeb 開発で配列を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。