第十三章 基本包装类型

  为了便于操作基本类型值,ECMAScript提供了3个特殊的引用类型:Boolean、Number和String。这些类型与其他引用类型相似,但同时也具有与各自的基本类型相应的特殊行为。实际上,每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而能够调用一些方法来操作这些数据。

一、基本包装类型概述

  var s1 = "some text";

  var s2 = s1.substring(2);

  这个例子中的变量s1包含一个字符串,字符串当然是基本类型值。而下一行调用了s1的substring()方法,并将返回的结果保存在了s2中。我们知道,基本类型值不是对象,因而从逻辑上讲它们不应该有方法。其实,为了让我们实现这种直观的操作,后台已经自动完成了一系列的处理。当第二行代码方位s1时,访问过程处于一种读取模式,也就是要从内存中读取这个字符串的值。而在读取模式中访问字符串时,后台都会自动完成下列处理。

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

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

  (3) 销毁这个实例。

  可以将以上三个步骤想象成是执行了下列ECMAScript代码。

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

  var s2 = s1.substring(2);

  s1 = null;

  基本的字符串就变得跟对象一样了;这样也适用Boolean,Number

  引用类型与基本包装类型的主要区别就是对象的生命期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即销毁。

二、Boolean类型

  Boolean类型是与布尔值对应的引用类型。要创建Boolean对象,可以调用Boolean构造函数并掺入true或false值。

  var booleanObject = new Boolean(true);    //建议不要使用

三、Number类型

  Number类型有一些静态属性(直接通过Number调用的属性,而无须new运算符)和方法。

Number静态属性
属 性 描 述
MAX_VALUE 表示最大数
MIN_VALUE 表示最小值
NaN 非数值
NEGATIVE_INFINITY 负无穷大,溢出返回该值
POSITIVE_INFINITY 无穷大,溢出返回该值
prototype 原型,用于增加新属性和方法
Number对象的方法
方 法 描 述
toString()  将数值转化为字符串,并且可以转换进制
toLocaleString() 根据本地数字格式转换为字符串
toFixed() 将数字保留小数点后指定位数并转化为字符串
toExponential() 将数字以指数形式表示,保留小数点后指定位数并转化为字符串
toPrecision( 指数形式或点形式表述数,保留小数点后面指定位数并转化为字符串

  var num=1000.789;

  alert(num.toString());                  //转换为字符串,传参可以转换进制

  alert(num.toLocaleString());            //本地形式,1,000.789 

  alert(num.toFixed(2));                  //小数点保留,1000.78

  alert(num.toExponential());             //指数形式,传参会保留小数点 

  alert(num.toPrecision(3));              //指数或点形式,传参保留小数点 

四、String类型

  String类型包含了三个属性和大量的可用内置方法。

String 对象属性
属 性 

描 述

length 返回字符串的字符长度
constructor  返回创建String对象的函数
prototype 通过添加属性和方法扩展字符串定义

String也包含对象的通用方法,比如valueOf()、toLocaleString()和toString()方法,但这些方法都返回字符串的基本值。

字符方法
方 法  描述
charAt(n) 返回指定索引位置的字符
charCodeAt(n) 以Unicode编码形式返回指定索引位置的字符

  var str='Mr.Lee';

  alert(str.charAt(1));                   //r

  alert(str.charCodeAt(1));               //114 

  alert(str[1]);                          //r,通过数组方式截取 box[1]在IE浏览器会显示undefined,所以使用时要慎重。 

字符串操作方法
方 法 描述
concat(str1...str2) 将字符串参数串联到调用该方法的字符串
slice(n,m) 返回字符串n到m之间位置的字符串
substring(n,m) 同上 
substr(n,m) 返回字符串n开始的m个字符串

 

字符串位置方法 
 方 法  描述 
 indexOf(str,n)  从n开始搜索的第一个str,并将搜索的索引值返回
 lastIndexOf(str,n)  从n开始搜索的最后一个str,并将搜索的索引值返回
大小写转换方法 
 方 法  描 述 
 toLowerCase(str)  将字符串全部转换为小写
 toUpperCase(str)  将字符串全部转换为大写
 toLocaleLowerCase(str)   将字符串全部转换为小写,并且本地化
 toLocaleupperCase(str)  将字符串全部转换为大写,并且本地化
字符串的模式匹配方法
方 法  描 述 
match(pattern) 返回pattern 中的子串或null 
replace(pattern, replacement) 用replacement 替换pattern
search(pattern)  用replacement 替换pattern
split(pattern) 返回字符串按指定pattern 拆分的数组
原文地址:https://www.cnblogs.com/xchit/p/JavaScript_13.html