Javascript高级程序设计——基本包装类型

时间:2022-08-10 20:05:24

既然js中的基本类型没有属性和方法那么为什么对字符串进行subString()方法可以呢?基本类型不应该没有方法的吗?

这就是基本包装类型啦!

ECMAScript提供了三个特殊的引用类型,Boolean,String,Number。

这些类型与其他引用类型相似,但也有各自基本的类型相应的特殊行为,每种包装类型都映射到同名的基本类型。

实际上每读取一个基本类型的值,都会创建一个对应的基本包装类型的对象,从而能够调用一系列方法来操作这些数据。

var str1 = "yan gxunwu";
var str2 = str1.subString(3);

调用第二行代码时,访问过程处于一种读取模式,也就是从内存中读取这个字符串的值。而在读取这个值时后台自动完成下列处理:

  1. 创建String()类型的实例。
  2. 实例上调用指定的方法。
  3. 销毁实例
var s1 = new String("yangxunwu");
var s2 = s1.subString(2);
s1 = null;

包装类型与引用类型区别就是生存期,包装类型只存在一行代码的执行瞬间,然后即被销毁。而一般引用类型在离开作用域前一直存在内存中。