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;
>>> "object"
a.name = 'name';
>>> TypeError: Cannot set property 'name' of null
var a = new Object();
typeof a;
>>> "object"
a.name = 'name';
>>> "name"
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 theundefined
value have any properties, nor can any properties be added to them.This is summarized nicely for null:
And likewise, for undefined:
(
null
is the only value of the Null-type andundefined
is the only value of the Undefined-type.)Now, for the implementation goodies:
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:
As far as the comments, see 11.4.3: The typeOf Operator: