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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With