矛盾を理解する: オブジェクトを含む配列 typeof が「Object」を返す理由
開発者は驚くべき現象に遭遇する可能性があります: 配列に対して typeof を呼び出すときオブジェクトが含まれている場合、不可解なことに「配列」ではなく「オブジェクト」が返されます。この記事では、この一見矛盾した動作について詳しく説明します。
例を調べて、問題を説明してみましょう。
$.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
}
});
console.dir(data) は変数を配列として正しく識別しますが、typeof データは不一致で「Object」を返します。
その説明は、typeof 演算子が使用される JavaScript の特有の仕様にあります。オブジェクトの内部 [[Class]] プロパティのタイプを返します。配列の場合、[[Class]] プロパティは「Array」に設定されますが、オブジェクトで囲まれる場合、[[Class]] プロパティは「Object」に変更されます。
正確な型チェックを確保するには、開発者はさまざまなアプローチを採用できます:
この特性を理解し、これらのテクニックを利用することで、開発者は JavaScript コードでオブジェクトの配列を効果的に処理できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3