首先明白一点,JS是
弱类型语言
,也就是说,变量是不区分类型的,而变量值则会区分类型。
不过,大体上分为两类:原始值、引用类型。
包装类型的用武之地则是在后台帮用户自动创建原始值的对应对象,从而简化操作,实质上,包装类型也属于引用类型。
原始值:
数值、布尔、字符串、null、undefined
引用类型
Date、 RegExp、Function…通常通过 new 关键字来创建对象
包装类型
所以,只有数值、布尔、字符串才有对应的包装类型:
Number Boolean String
包装类型是引用类型,但又有自己的特性。
主要区别:
new创建的对象实例离开作用域时才会被销毁
包装对象只有在通过原始值调用对应包装对象的属性或方法时,才会自动创建,且调用完成后,当场销毁该对象
// 对比以下示例:
let s1 = "some text";
s1.color = "red";
console.log(s1.color); // undefined 对象在前一行已经销毁,更谈不上属性
-------------------------------------
let s2 = new String("some text");
s2.color = "red";
console.log(s2.color); // "red",对象在当前作用域均有效
版权声明:本文为qq_45668041原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。