JavaScript 配列に対して「typeof」が「Object」を返すのはなぜですか?

Mary-Kate Olsen
リリース: 2024-11-02 19:18:31
オリジナル
648 人が閲覧しました

Why Does `typeof` Return

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!