Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

difference between object and Object in JavaScript

Tags:

javascript

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"?

like image 966
Rohit P Avatar asked Oct 02 '12 18:10

Rohit P


3 Answers

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.

like image 60
Stephen Avatar answered Nov 12 '22 18:11

Stephen


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.

like image 6
I Hate Lazy Avatar answered Nov 12 '22 20:11

I Hate Lazy


Javascript is case sensitive "object" is essentially a variable that can hold anything. "Object" is an actual javascript type.

like image 4
Thomas Avatar answered Nov 12 '22 20:11

Thomas