If null
value of javascript is an empty object so why can\'t add a property to it?
the below code clears my question:
var a = null;
typeof a;
&
null
is an object in Javascript that represents the absence of an object. You cannot add a property to nothing.
See also: Why is null an object and what's the difference between null and undefined?
By definition neither the null
value nor the undefined
value have any properties, nor can any properties be added to them.
This is summarized nicely for null:
primitive value that represents the intentional absence of any object value.
And likewise, for undefined:
primitive value used when a variable has not been assigned a value.
(null
is the only value of the Null-type and undefined
is the only value of the Undefined-type.)
Both of these types represent primitives and the behavior of "primitiveValue.Property" is covered by the internal ToObject method. (See GetValue/PutValue for the start of the rabbit hole.)
From 9.9: ToObject:
The abstract operation ToObject converts its argument to a value of type Object according to ..
- Undefined => Throw a TypeError exception.
As far as the comments, see 11.4.3: The typeOf Operator:
Return a String determined by Type(val) according to ..
- Undefined => "undefined"