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