美文网首页IT修真院-前端
javascript基本包装类型介绍

javascript基本包装类型介绍

作者: 我叫于搞吧 | 来源:发表于2017-08-01 09:18 被阅读0次


    1.背景介绍

    引用类型的值(对象)是一个引用类型的一个实例。在ECMAScript中,引用类型是一种数据结构,用于将数据和功能组织在一起。它也通常称为类。

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

    2.知识剖析

    基本包装类型概述

    var box = 'me';//定义一个字符串

    var box2 = box.substring(2);//截掉字符串前两位

    alert(box2);//输出新字符串

    变量box是一个字符串类型,而box.substring(2)又说明它是一个对象(只有对象才会调用方法),最后把处理结果赋值给box2。

    字面量写法:

    var box = 'Mr. Lee';//字面量

    box.name = 'Lee';//无效属性

    box.age = function () {//无效方法

    return 100;

    };

    alert(box);//Mr. Lee

    alert(box.substring(2));//. Lee

    alert(typeof box);//string

    alert(box.name);//undefined

    alert(box.age());//错误

    new运算符写法:

    var box = new String('Mr. Lee');//new运算符

    box.name = 'Lee';//有效属性

    box.age = function () {//有效方法

    return 100;

    };

    alert(box);//Mr. Lee

    alert(box.substring(2));//. Lee

    alert(typeof box);//object

    alert(box.name);//Lee

    alert(box.age());//100

    以上字面量声明和new运算符声明很好的展示了他们之间的区别。不管字面量形式还是new运算符形式,都可以使用它的内置方法。并且Boolean和Number特性与String相同,三种类型可以成为基本包装类型。

    Boolean布尔对象类型:

    Boolean类型是布尔值创建的引用类型。创建Boolean类型,可以使用Boolean构造函数去创建,并传入true或者

    false参数。如:var booleanObject = new Boolean(true);

    注意:在布尔表达式中使用Boolean对象,我们可能会出错的一些地方,如:

    var booleanObj = new Boolean(false);

    var result = booleanObj && true;

    console.log(result);

    结果是true,因为booleanObj是一个对象,在布尔表达式中,所有的对象都会被转换为true。记住:引用类型的布尔值,其实是对象。当然,我们不推荐这么用(不推荐用引用类型的布尔值来判断布尔表达式)

    Number类型

    Number类型是数字值创建的引用类型。创建Number类型,使用Number类型的构造函数,可以传递数字值参数,如:

    var numberObj = new Number(1024);

    numberObj.toFixed()方法:

    可以接受一个数值,表示保留的小数的个数(会自动四舍五入)。如果要处理价格问题或者增长率问题,即保留多少为小数,用这个方法非常有效。

    var numberObj = new Number(1024.153);

    console.log(numberObj.toFixed(2));//1024.15

    console.log(numberObj.toFixed(1));//1024.2

    String类型

    String类型是字符串值创建的引用类型。String类型创建的方式,使用String构造函数创建,可以传入字符串参数;如:

    var stringOjb = new

    String(“hello,1024idea”);

    String类型的每个实例都有一个length属性,用于计算字符串的长度(即字符串中包含多少个字符)。

    字符方法:charAt(),charCodeAt(),接受一个数字参数,返回某个数字索引位置的字符或字符编码。

    var str = "hello,1024idea";

    console.log(str.charAt(4));//o

    console.log(str.charCodeAt(4));//111

    console.log(str[4]);//o

    字符串的操作方法:concat(),可以将多个字符串连接起来。返回得到的新字符串。实践中,我们平时用的多的还是用“+”去拼接字符串。

    var str1 = "hello,";

    var str2 = str1.concat("1024idea");

    console.log(str2);//hello,1024idea

    3.常见问题

    引用类型与基本包装类型的区别?

    在于对象的生命周期。使用new关键字创建的引用类型的实例,对象在当前作用域都存在。而基本包装类型自动创建的对象则在对象被调用的时刻存在,调用完毕后,就被销毁不存在了。

    引用类型,也就是对象类型。创建好对象可以调用这个对象下的方法有Object类型,function类型等。

    使用new关键字创建的构造函数与使用同名的转型函数的效果是不一样的。如:

    //构造函数与转型函数返回值的区别

    var str = "1024";

    var strObj = new String(str);

    console.log(typeof strObj);//object

    var strNum = Number(str);

    console.log(typeof strNum);//number

    这个例子中,变量strObj保存的是object类型,而变量strNum保存的是number类型。一般情况下,是不建议手动的去创建基本包装类型的对象,因为这样经常造成的问题是,分不清自己是在处理基本包装类型还是引用类型。

    4.参考文献

    javaScript对象-基本包装类型的详解:
    http://www.cnblogs.com/john-sr/p/5731247.html

    PPT:    点击

    视频:


    javascript基本包装类型介绍_腾讯视频

    相关文章

      网友评论

        本文标题:javascript基本包装类型介绍

        本文链接:https://www.haomeiwen.com/subject/jvpdlxtx.html