1

私はJavascriptでそれを読んでいます:

  • すべてがオブジェクトです (数値、文字列、ブール値、null、未定義な​​どのプリミティブを除く)
  • オブジェクトは連想配列として扱うことができます。

結論から言うと、Array.isArray() はすべてに対して true を返す必要があります (前述のプリミティブ例外を除く)。私は何を理解しましたか?

ありがとう !

4

2 に答える 2

2

オブジェクトと配列には違いがあります。Arrayは実際には Array Objectです。他のオブジェクトとはメソッドが異なります。String は Stringオブジェクトです。ただし、配列であるかのようにオブジェクトにアクセスできます。次のオブジェクトを取得します

var obj = {
    value1: 'Some Value',
    value2: 'Some Other Value'
    };

次のような値を取得できます

obj['value1'];
obj['value2'];

これは、それがArray Objectであることを意味するのではなく、アクセスする方法が異なるだけです

isArray() は、配列のようにアクセスできるかどうかではなく、オブジェクトがArray Objectどうかをチェックします

于 2012-08-22T05:29:40.383 に答える
1

配列 (javascript の [[Class]] 型) は、連想配列 (抽象データ型) と同じではありません。Array.isArrayオブジェクトが通常の配列かどうかをチェックします({}).toString.call( obj ) === "[object Array]"

  1. Type(arg) が Object でない場合は、false を返します。
  2. arg の [[Class]] 内部プロパティの値が "Array" の場合、true を返します。
  3. false を返します。
于 2012-08-22T05:29:52.423 に答える