当前位置:首页 > 公司荣誉 >

Javascript引用类型之包装类型(Boolean、Number、Stri

作者:厦门七星音乐岛文化传播有限公司 发布时间:2017-09-13 13:28:36

Javascript引用类型之包装类型(Boolean、Number、String) [1]定义:基本包装类型是特殊的引用类型。每当读取一个基本类型值的时候,后台就会创建一个对应的基本包装类型的对象,从而可能调用一些方法来操作这些数据。

  e.g. var s1 = 'some text';

  var s2 = s1.substring(2);

  //在上述过程中,实际上发生了三个步骤

  var s1 = new String('some text'); //(1)创建String类型的一个实例

  var s2 = s1.substring(2); //(2)在实例上调用指定的方法

  s1 = null; //(3)销毁这个实例

  [注意]引用类型和基本包装类型的主要区别是对象的生存期。使用new操作符创建的引用类型的实例,在执行流离开当前作用域之前都一直保存在内存中。而自动创建的基本包装类型的对象,则只存在于一行代码的执行瞬间,然后立即被销毁。这意味着我们不能在运行时为基本类型值添加属性和方法。

var s1 = 'some text';

s1.color = 'red';

alert(s1.color);//undefined

[2]显式创建包装类型的两种方式:

  [2.1]Object方式[不建议使用]

    [2.1.1]var s = new Object('abc');

    [2.1.2]var b = new Object(true);

    [2.1.3]var n = new Object(123);

  [2.2]构造函数方式[不建议使用]

    [2.2.1]var s = new String('abc');

    [2.2.2]var b = new Boolean(true);

    [2.2.3]var n = new Number(123);

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

var value = '25';

var number = Number(value);

console.log(typeof number);//number

var obj = new Number(value);

console.log(typeof obj);//object

[3]Boolean类型是与布尔值对应的引用类型,在布尔表达式中使用Boolean对象容易造成误解[不建议使用]

  [3.1]继承的方法

    [3.1.1]valueOf():返回基本类型值true 或 false

    [3.1.2]toString()和toLocaleString():返回字符串'true' 或'false'

[4]Number类型是与数字值对应的引用类型,在使用typeof和instance操作符时容易产生误解[不建议使用]

  [4.1]继承的方法

    [4.1.1]valueOf():返回基本类型的数值

    [4.1.2]toString()和toLocaleString():返回字符串形式的数值

  [tips]可以为toString()方法传递一个表示基数的参数

var num = 10; console.log(num.toString());//'10' console.log(num.toString(2));//'1010' console.log(num.toString(8));//'12' console.log(num.toString(10));//'10' console.log(num.toString(16));//'a'

  [4.2]数值格式化为字符串的方法

    [4.2.1]toFixed():按照指定的小数位返回数值四舍五入后的字符串表示(常用于处理货币值)

    [注意]toFixed()里的参数只接受0-20,若不传参则相当于参数是0

var num = 10.456;

console.log(num.toFixed(2));//10.46

console.log(num.toFixed());//10

    [4.2.2]toExponential():返回指数表示法(e表示法)的数值的字符串表示,参数表示转换后的小数位数

    [注意]toExponential()里的参数只接受0-20,若不传参则相当于不针对小数进行四舍五入

var num = 10.456;

console.log(num.toExponential(2));//1.05e+1

console.log(num.toExponential());//1.0456e+1

    [4.2.3]toPrecision():接收一个参数,即表示数值的所有数字的位数(不包括指数部分),自动调用toFixed()或toExponential()

    [注意]toFixed()里的参数只接受1-21,若不传参则不对原数字进行任何操作

var num = 10;

console.log(num.toPrecision(3));//10.0

console.log(num.toPrecision(2));//10

console.log(num.toPrecision(1));//1e+1

console.log(num.toPrecision());//10

[5]String类型是与字符串对应的引用类型

[5.1]length属性:String类型的每个实例都有一个length属性,表示字符的个数。该属性只可读取,不可改变

[5.2]继承的方法:valueOf()、toString()和toLocaleString():返回字符串表示

[5.3]访问字符方法:接收一个基于0的字符位置的参数,并以单字符字符串的形式返回

   [5.3.1]charAt():返回给定位置的字符

   [注意]当参数为空时,默认参数为0;当参数超出范围时,则什么都不输出

   [5.3.2]中括号加数字索引(ECMAScript5):返回给定位置的字符(IE7-不支持,输出undefined)

   [注意]当参数为空或参数超出范围时,则输出undefined

   [5.3.3]charCodeAt():返回给定位置的字符编码,字符编码为Number类型

   [注意]当参数为空时,默认参数为0;当参数超出范围时,则输出NaN

   [5.3.4]String.fromCharCode():把一个或多个编码值转成一个字符串

   [注意]参数范围为ASCII表的范围

var stringValue = 'hello world'; console.log(stringValue.charAt(1));//'e' console.log(stringValue.charCodeAt(1));//101 console.log(typeof stringValue.charCodeAt(1));//'number' console.log(String.fromCharCode(104,101,108,108,111));//'hello' console.log(String.fromCharCode(0x6211,0x662f,0x5c0f,0x706b,0x67f4));//'我是小火柴' console.log(stringValue[1]);//'e'

[5.4]字符串拼接方法

  [5.4.1]concat():可以接受任意多个参数,用于将一个或多个字符串拼接起来,返回拼接得到的新字符串

  [5.4.2]+:加号操作符在多数情况下比concat()更简便

var stringValue = 'hello ';

console.log(stringValue.concat('world','!'));//'hello world!'

console.log(stringValue + 'world' + '!');//'hello world!'

[5.5]子字符串创建方法:返回被操作字符串的一个子字符串,若无参数则返回原字符串

  [5.5.1]substr:接受两个参数:子字符串开始位置、子字符串长度(可选,默认到原字符串结束)

    [a1]当第一个参数为正数且大于等于原字符串长度时,不输出

    [a2]当第一个参数为负数且绝对值小于原字符串长时,相当于第一个参数+原字符串长度之后的值

    [a3]当第一个参数为负数且绝对值大于等于原字符串长时,相当于第0个位置

    [b1]当第二个参数为负数时,被置0

    [b2]当第二个参数的值大于等于可以提供的字符个数时,以最大字符数输出

    [注意]IE8-在处理第一个参数为负值时存在问题,输出原字符串

企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:湖北SEO http://hubei.4567w.com

  • 上一篇:Android基础入门教程——2.4.15 DrawerLayout(官方侧
  • 下一篇:最后一页
  • 

    COPYRIGHT © 2015 厦门七星音乐岛文化传播有限公司 ALL RIGHTS RESERVED.

    本站所有原创信息,未经许可请勿任意转载或复制使用

    网站地图 技术支持:肥猫科技
    精彩专题:网站建设
    购买本站友情链接、项目合作请联系客服QQ:2500-38-100