• js-20170616-包装对象 Boolean对象


    1.包装对象的定义
    有人说,JavaScript语言“一切皆对象”,数组和函数本质上都是对象,就连三种原始类型的值——数值、字符串、布尔值——在一定条件下,也会自动转为对象,也就是原始类型的“包装对象”。
    所谓“包装对象”,就是分别与数值、字符串、布尔值相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。
    var v1 = new Number(123);
    var v2 = new String('abc');
    var v3 = new Boolean(true);
    2.包装对象实例的方法
    包装对象实例可以使用Object对象提供的原生方法,主要是valueOf方法和toString方法。
    2.1 valueOf()
    valueOf方法返回包装对象实例对应的原始类型的值。
    new Number(123).valueOf() // 123
    new String("abc").valueOf() // "abc"
    new Boolean("true").valueOf() // true
    2.2 toString()
    toString方法返回实例对应的字符串形式。
    new Number(123).toString() // "123"
    new String("abc").toString() // "abc"
    new Boolean("true").toString() // "true"
    3.原始类型的自动转换
    原始类型的值,可以自动当作对象调用,即调用各种对象的方法和参数。这时,JavaScript引擎会自动将原始类型的值转为包装对象,在使用后立刻销毁。
    'abc'.length // 3
    上面代码中,abc是一个字符串,本身不是对象,不能调用length属性。JavaScript引擎自动将其转为包装对象,在这个对象上调用length属性。调用结束后,这个临时对象就会被销毁。这就叫原始类型的自动转换。
    如果包装对象与原始类型值进行混合运算,包装对象会转化为原始类型(实际是调用自身的valueOf方法)
    new Number(123) + 123 // 246
    new String('abc') + 'abc' // "abcabc"
    4.自定义方法
    三种包装对象还可以在原型上添加自定义方法和属性,供原始类型的值直接调用。
    比如,我们可以新增一个double方法,使得字符串和数字翻倍。
    String.prototype.double = function () {
    return this.valueOf() + this.valueOf();
    };
    'abc'.double()
     
    Number.prototype.double = function () {
    return this.valueOf() + this.valueOf();
    };
    (123).double()
    5.Boolean对象
    Boolean对象是JavaScript的三个包装对象之一。作为构造函数,它主要用于生成布尔值的包装对象的实例。
    var b = new Boolean(true);
    typeof b // "object"
    b.valueOf() // true
     
  • 相关阅读:
    临时文件服务器,配置共享文件夹
    封装扩展方法
    List.Insert
    VS 生成事件中xcopy失败
    创建型设计模式总结
    js提交图片转换为base64
    C#建造者模式
    echarts 立体柱
    k8s生产环境启用防火墙,要开启的端口
    一篇文章为你图解Kubernetes网络通信原理
  • 原文地址:https://www.cnblogs.com/jialuchun/p/7283531.html
Copyright © 2020-2023  润新知