网站建设区域加盟,wordpress下载样式,北交所公司企业债券开市,餐饮品牌设计论文在之前的介绍中#xff0c;我们知道了#xff0c;数据的分类分为基本数据类型和引用类型。
而基本包装类型#xff0c;严格来说不属于上面两个中的任意一个#xff0c;但又和两种类型关系米希尔。
我们回忆一下#xff0c;基本类型和引用类型最大的区别是什么#xff1…在之前的介绍中我们知道了数据的分类分为基本数据类型和引用类型。
而基本包装类型严格来说不属于上面两个中的任意一个但又和两种类型关系米希尔。
我们回忆一下基本类型和引用类型最大的区别是什么
let person {name: Codereasy,age: 30,celebrateBirthday: function() {this.age 1;console.log(this.name is now this.age years old!);}
};person.celebrateBirthday(); // 输出Codereasy is now 31 years old!
但基本数据类型真的就不能使用方法吗
let number 42;
console.log(number.toString()); // 输出42
上面的 Number 是一个基本类型但是它却能调用 toString() 的方法。
按照常理来说字符串不是引用类型所以它不应该有自己的方法第二行代码应该报错才对。
自动创建 Number 类型的一个实例和基本类型的值不同这个实例就是一个基本包装类型的对象调用实例对象上指定的方法销毁这个实例
let number 42;
let tempNumberObject new Number(number);
console.log(tempNumberObject.toString()); // 输出42基本类型的值虽然没有方法可以调用但是后台临时创建的包装对象上有内置方法可以让我们调用方法因此这样我们就可以对字符串、数值、布尔值这三种基本数据类型的数据进行更多操作。
包装类型和引用类型的不通之处
通过之前的例子介绍大家可能会有一个误解。包装类型是不是就是把基本类型变成了引用类型它本质上就是一个引用类型其实不是包装类型很想引用类型但他的生命周期和引用类型有很大区别。
let person {name: codereasy,age: 30
};person.myProperty hello;
console.log(person.myProperty); // 输出hello
但是如果你给包装类型添加属性
let number 42;
number.myProperty hello;
console.log(number.myProperty); // 输出undefined由于基本包装类型的对象仅在执行瞬间存在因此无法向其添加属性。相反引用类型的对象会持续存在直到它们不再被引用并被垃圾收集器回收所以你可以向它们添加属性。