zoukankan      html  css  js  c++  java
  • 第十三章 基本包装类型

      为了便于操作基本类型值,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 拆分的数组
  • 相关阅读:
    docker的网络服务
    想真正了解JAVA设计模式看着一篇就够了。 详解+代码实例
    再问你Java内存模型的时候别再给我讲堆栈方法区
    ssh爆破脚本
    ecshop3.0.0注入
    zabbix 安装配置以及漏洞检测脚本
    代理爬取
    selenium2使用记录
    初级AD域渗透系列
    用ftplib爆破FTP口令
  • 原文地址:https://www.cnblogs.com/xchit/p/JavaScript_13.html
Copyright © 2011-2022 走看看