Why can't a property be added to a null value?

后端 未结 2 1834
长发绾君心
长发绾君心 2020-12-21 22:07

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;
&         


        
相关标签:
2条回答
  • 2020-12-21 22:38

    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?

    0 讨论(0)
  • 2020-12-21 22:42

    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)
    0 讨论(0)
提交回复
热议问题