为了方便的基本
类型的值的
操作,还提供了3个特殊的ECMAscript引用类型:布尔,号码,和字符串。这些类型相似的其他引用类型,本章中
介绍的,但他们也有特殊的行为对应的基本类型。事实上,每当一个基本类型是
值得一读的
背景会产生相应的基本包装类型的一个对象,所以我们可以把一些
方法来操作这些数据。以下的例子如下:
复制代码代码如下所示:
一些
文本;
VaR S2 = s1.substring(2);
变量S1在这个例子中包含一个字符串,这是,当然,一个基本类型的值,而下一行代码调用substring()方法的S1,和返回的结果
保存在S2。我们知道基本类型的值不是对象,因此按理他们应该没有方法(虽然他们有方法,像我们希望的那样)。事实上,为了让我们实现这个直观的操作,后台已自动完成一系列的
处理。当第二行代码访问S1,访问过程中,是一种阅读
模式,阅读,从
内存的字符串值。当一个字符串是在读取模式访问,后台会自动完成以下处理。
1。
创建字符串类型的实例;
2。指定的方法在实例上调用;
三.破坏这个例子。
以上三个
步骤可以想象为ECMAscript代码
执行。
复制代码代码如下所示:
var =新字符串(一些文本);
VaR S2 = s1.substring(2);
S1 = null;
在这个处理之后,基本字符串值变得与对象相同。此外,上述三个步骤也适用于布尔值和数字类型分别对应的布尔值和数值。
引用类型和基本包装类型之间的主要
区别是对象的生命周期。使用new
运算符创建的引用类型的一个实例是保存在内存中的流的执行离开当前范围之前,基本包型,自动创建只存在在一行代码执行时刻的物体,然后立即销毁。这意味着我们不能对基本类型的值添加
属性和方法时,我们不会再次
运行。如下面的例子:
复制代码代码如下所示:
一些文本
颜色红色;
警报(S1颜色);
在这里,第二行试图添加一个颜色属性的字符串s1。然而,当第三行代码来访问S1,其颜色属性丢失。
原因是,第二行创建字符串对象被销毁时执行第三行代码。第三行创建自己的字符串对象,和对象没有颜色属性。
当然,可以
显示的下降被称为布尔型,数量,和字符串的基本包装类型创建对象。但是,它应该是在绝对必要时再做,因为这样很容易让人们知道他们正在处理的基本包装类型或基本包装类型的值。一种叫的基本包装类型返回对象的一个实例,和基本包装类型的对象
转换为布尔值true。
对象构造
函数也将返回到相应的基本包装器类型的实例,如工厂方法,基于传入的有价值的类型:
复制代码代码如下所示:
var obj =新的对象(文本);
警报(obj是字符串); / /真的
将字符串传递给对象构造函数将创建字符串的实例,数字
参数将获得一个数字实例,而布尔参数将获得布尔实例。
需要注意的是,使用新调用基本包装器类型的构造函数与直接调用相同名称的转换函数不一样:
复制代码代码如下所示:
var值 25 ;
var数字=数字(值);转换函数
警报(
型号); / /
var obj =新数(值); / /构造函数
警报(typeof obj); / /对象
在这个例子中,变量数存储在基本型的值为25,和可变对象是数的一个实例。
虽然我们不
推荐显式对象来创建基本的包装器类型,但是它们操作基本类型值的能力仍然非常重要,每个基本的
打包类型都提供了一种操作相应值的便捷方法。
这是本文的全部内容,希望您能喜欢。