ホームページ  >  記事  >  ウェブフロントエンド  >  Web 開発で配列を検出する方法

Web 開発で配列を検出する方法

php中世界最好的语言
php中世界最好的语言オリジナル
2018-06-04 10:20:271318ブラウズ

今回は、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開発でグローバル変数の使用を避ける必要があるのはなぜですか

以上がWeb 開発で配列を検出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。