Mus*_*aie 1 javascript null properties typeerror
如果nulljavascript的值是一个空对象,为什么不能为它添加属性?以下代码清除了我的问题:
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"
Run Code Online (Sandbox Code Playgroud)
小智 7
根据定义,null值和undefined值都没有任何属性,也不能向它们添加任何属性.
这很好地归结为null:
原始值,表示故意缺少任何对象值.
同样,对于undefined:
原始值,表示故意缺少任何对象值.
(null是Null类型undefined的唯一值,是Undefined类型的唯一值.)
这两种类型都表示基元,内部ToObject方法涵盖"primitiveValue.Property"的行为.(有关兔子洞的开始,请参阅GetValue/PutValue.)
抽象操作ToObject根据..将其参数转换为Object类型的值.
- Undefined =>抛出TypeError异常.
- Null => 抛出TypeError异常.
- (等等)
至于注释,请参见11.4.3:typeOf运算符:
返回由Type(val)确定的字符串.
- 未定义=>"未定义"
- Null => "对象"
- (等等)
| 归档时间: |
|
| 查看次数: |
193 次 |
| 最近记录: |