以下のコードで:-
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」のオブジェクトである場合、なぜそうなるのでしょうか。
以下のコードで:-
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」のオブジェクトである場合、なぜそうなるのでしょうか。
「物」というものは存在しないからです。Typeof はクラスを返すのではなく、本来のプリミティブ型を返します。たとえば、typeof "string"
「文字列」を返します。
「オブジェクト」はオブジェクト「プリミティブ」のコンストラクターであるため、操作new Object
する「オブジェクト」が返されます..ただし、「オブジェクト」のように「新しいオブジェクト」を作成できるとは思わないでくださいコンストラクターとして存在しません。
。という名前の変数を定義していないため、エラーが発生しますobject
。宣言されていない変数を読み取ろうとすると、ReferenceErrorになります。
変数は環境にネイティブであり、Object
プレーンオブジェクトのコンストラクター関数として事前定義されています。そういうわけであなたがするときそれは働きますinstanceof Object
。JavaScriptのすべてのネイティブオブジェクトはのインスタンスですObject
。
Javascript は大文字と小文字を区別します。「オブジェクト」は基本的に、何でも保持できる変数です。「オブジェクト」は実際の JavaScript 型です。