矛盾を理解する: オブジェクトを含む配列 typeof が「Object」を返す理由
開発者は、配列に対して typeof を呼び出すときに驚くべき現象に遭遇する可能性があります。オブジェクトが含まれている場合、不可解なことに「配列」ではなく「オブジェクト」が返されます。この記事では、この一見矛盾した動作について詳しく説明します。
例を調べて、問題を説明します。
<code class="javascript">$.ajax({ url: 'http://api.twitter.com/1/statuses/user_timeline.json', data: { screen_name: 'mick__romney'}, dataType: 'jsonp', success: function(data) { console.dir(data); //Array[20] alert(typeof data); //Object } });</code>
console.dir(data) は変数を配列として正しく識別しますが、typeofデータは不一致で "Object" を返します。
その説明は、typeof 演算子がオブジェクトの内部 [[Class]] プロパティの型を返すという JavaScript の特殊な仕様にあります。配列の場合、[[Class]] プロパティは「Array」に設定されますが、オブジェクトで囲まれる場合、[[Class]] プロパティは「Object」に変わります。
正確な型チェックを確保するには、開発者はさまざまなアプローチを採用できます。
この特性を理解し、これらのテクニックを利用することで、開発者は JavaScript コードでオブジェクトの配列を効果的に処理できます。
以上がJavaScript でオブジェクトを含む配列に対して「typeof」が「Object」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。