In the below code :-
var x = { } ;
console.log(typeof x); // o/p is object
console.log(x instanceof Object ); //o/p is true
If I use " object " instead of " Object " in the last line I get an error.Why is that so when the o/p of second line is object with a lowercase "o"?
Because there's no such thing as an 'object'. Typeof doesn't give you the class back - it gives you back the primitive type that it is. For example, typeof "string"
gives you back "string".
The 'Object' is a constructor for an object 'primitive' - so a new Object
gives you back an 'object' to work with.. but don't expect to be able to create a 'new object', as an 'object' doesn't exist as a constructor.
You get an error because you haven't defined a variable named object
. Attempting to read a variable that has not been declared is a ReferenceError .
The Object
variable is native to the environment, and is pre-defined as the constructor function for plain objects. That's why it works when you do instanceof Object
. Every native object in JavaScript is an instance of Object
.
Javascript is case sensitive "object" is essentially a variable that can hold anything. "Object" is an actual javascript type.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.