Skip to content Skip to sidebar Skip to footer

Why Can't A Property Be Added To A Null Value?

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'

Solution 1:

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.)

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:

The abstract operation ToObject converts its argument to a value of type Object according to ..

  • Undefined => Throw a TypeError exception.
  • Null => Throw a TypeError exception.
  • (and so on)

As far as the comments, see 11.4.3: The typeOf Operator:

Return a String determined by Type(val) according to ..

  • Undefined => "undefined"
  • Null => "object"
  • (and so on)

Solution 2:

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?

Post a Comment for "Why Can't A Property Be Added To A Null Value?"