JavaScript の配列型を理解する: typeof が「配列」ではなく「オブジェクト」を返すのはなぜですか?
JavaScript は、次のような興味深い動作を示します。 typeof 演算子は、オブジェクトの配列に対して「object」を返します。これは、次のコードのようなシナリオで確認できます。
$.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 }, });
上記のコードでは、データは Twitter ステータスを表すオブジェクトの配列です。 console.dir() は型が「Array」であると報告しますが、typeof は「Object」を返します。
この動作は、JavaScript 配列が技術的にはオブジェクトであるという事実に起因します。これらはオブジェクト プロトタイプから継承します。つまり、オブジェクトのようなプロパティとメソッドを所有します。この継承は、typeof からの "Object" 結果を担当します。
JavaScript で変数が本当に配列であるかどうかを判断するには、信頼できるメソッドがいくつかあります。
1。インスタンスオブ演算子:
var isArr = data instanceof Array;
2. Array.isArray() メソッド:
var isArr = Array.isArray(data);
3. Object.prototype.toString.call() メソッド:
isArr = Object.prototype.toString.call(data) == '[object Array]';
4. jQuery isArray() 関数 (jQuery を使用する場合):
var isArr = $.isArray(data);
これらのメソッドは、配列と他のタイプのオブジェクトを区別するときに、typeof よりも正確な結果を提供します。これらの代替手段を活用することで、開発者は typeof 動作による混乱を招くことなく、自信を持って JavaScript で配列を操作できます。
以上がJavaScript 配列に対して「typeof」が「Object」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。