zoukankan      html  css  js  c++  java
  • 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
     
  • 相关阅读:
    Quartz.NET 2.0 学习笔记(1) :Quartz.NET简介
    Quartz.NET 2.0 学习笔记(5) :实例创建Windows服务实现任务调度
    Quartz.NET 2.0 学习笔记(2) :和1.0的几点不同
    C#实现网页正文提取算法ok
    网页正文提取的思路
    sql getdate() 时间格式设置
    分页,静态程序asp实现,php同理
    网页正文抽取能用的抽取代码java
    泛采集技术
    查询一个数据表中的数据并插入到另一个数据表
  • 原文地址:https://www.cnblogs.com/jialuchun/p/7283531.html
Copyright © 2011-2022 走看看