12

以下のコードで:-

 var x = { } ;
    console.log(typeof x);             // o/p is object
    console.log(x instanceof Object ); //o/p is true

最後の行で「 Object 」の代わりに「 object 」を使用すると、エラーが発生します。2行目のo / pが小文字の「o」のオブジェクトである場合、なぜそうなるのでしょうか。

4

3 に答える 3

14

「物」というものは存在しないからです。Typeof はクラスを返すのではなく、本来のプリミティブ型を返します。たとえば、typeof "string"「文字列」を返します。

「オブジェクト」はオブジェクト「プリミティブ」のコンストラクターであるため、操作new Objectする「オブジェクト」が返されます..ただし、「オブジェクト」のように「新しいオブジェクト」を作成できるとは思わないでくださいコンストラクターとして存在しません。

于 2012-10-02T18:46:36.943 に答える
5

。という名前の変数を定義していないため、エラーが発生しますobject。宣言されていない変数を読み取ろうとすると、ReferenceErrorになります。

変数は環境にネイティブであり、Objectプレーンオブジェクトのコンストラクター関数として事前定義されています。そういうわけであなたがするときそれは働きますinstanceof Object。JavaScriptのすべてのネイティブオブジェクトはのインスタンスですObject

于 2012-10-02T18:45:40.820 に答える
3

Javascript は大文字と小文字を区別します。「オブジェクト」は基本的に、何でも保持できる変数です。「オブジェクト」は実際の JavaScript 型です。

于 2012-10-02T18:46:12.850 に答える