JS中引用类型和包装类型的区别

  • Post author:
  • Post category:其他


首先明白一点,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 版权协议,转载请附上原文出处链接和本声明。