给一个未知类型的变量添加属性的三种情况

在项目中我们经常会给一些对象添加属性或者方法

那大家有思考过其他的数据类型是否也能添加属性或者方法么

添加后会出现什么情况呢

情况一: 被添加属性或者方法的是Null Undefinde

var a;
var a = undefined; 
var a = null; 

a.num = 2;

console.log(a.num);
// Cannot set property 'num' of undefined
// Cannot set property 'num' of undefined
// Cannot set property 'num' of null
小结: 给Undefined 或者Null 添加属性和方法时会抛出异常

情况二: 被添加属性或者方法的是String Number Boolean

var a = "";
var a = 1;
var a = false; 
var a = true; 
a.num = 2;

console.log(a, a.num);
// "" undefined
// 1 undefined
// false undefined
// true undefined
小结: 给String Number 或者Boolean 添加属性或者方法会丢失,原数据不变

情况三: 被添加属性或者方法的是Object Function Array

var a = {};
var a = function () {};
var a = [];
a.num = 2;

console.log(a, a.num);
// {num: 2} 2
// function a() { num = 2 } 2
// [num: 2] 2
小结: 给Object Function 或 Array添加属性或者方法添加成功,原数据改变

总结

最后发现只有引用数据类型的变量才能成功添加属性或者方法,而给基本数据类型添加属性或者方法时,则会抛出异常,或者添加无效

最后

如有问题,欢迎指出!

发表评论

电子邮件地址不会被公开。 必填项已用*标注