JavaScript高级程序设计8.pdf

基本包装类型

为了便于操作基本类型值,ECMAScript定义了3个特殊的引用类型Boolean,Number和String。这些类型与本章介绍的其他用类型相似,同时也具备与各自的基本类型相应的特殊行为

实际上,每当读取一个基本类型值得时候,后台就会创建一个对应的基本包装类型的对象,让我们能调用一些方法操作这些数据

var s1="some text";

var s2=s1.substring(2);

s1是基本类型值,第二行调用了substring()方法,并将返回值保存在s2中

相当于在后台调用了三个步骤:

1创建String类型的一个实例;

2在实例上调用指定的方法

3销毁这个实例

var s1=new String("some text");

var s2=s1.substring(2);

s1=null

引用类型与基本包装类型的主要区别就是对象的生存期,引用类型的实例在执行流停留当前作用域时一直保存在内存中,而自动创建的基本包装类型只存在于一行代码执行的瞬间,然后立即被销毁

这意味着我们不能在运行时为基本类型值添加属性和方法

var s1="some text";

s1.color="red";

alert(s1.color);  //undefined

基本包装类型必要时再使用

对基本包装类型的实例调用typeOf会返回"object",而且所有基本包装类型的对象都会被转换为布尔值true

Object构造函数根据传入值的类型返回相应的基本包装类型的实例

var obj=new Object("some text");

alert(obj instanceof String);  //true

把字符串传给Object构造函数,就会创建String实例,传入数值就回创建Number实例;传入布尔值就回创建Boolean实例

要注意的是使用new调用基本类型的构造函数与直接调用同名的转型函数是不一样的

var value="25";

var number=Number(value);  //转型函数

alert(typeof number);  //"number"

var obj=new Number(value);  //构造函数

alert(typeof obj);  //"object"

Boolean类型

Boolean类型是与布尔值对应的引用类型,调用并传入true或者false

var booleanObject=new Boolean(true);

Boolean类型的实例重写了valueOf()方法,返回基本类型值true或false,重写了toString()方法,返回字符串"true"和"false"

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

上一篇:Jquery生成树 ztree


下一篇:#include