定义

所谓“包装对象”,就是分别与数值、字符串、布尔值相对应的Number、String、Boolean三个原生对象。这三个原生对象可以把原始类型的值变成(包装成)对象。

 

var v1 = new Number(123);

var v2 = new String('abc');

var v3 = new Boolean(true);

 

实例方法

valueOf()

valueOf方法返回包装对象实例对应的原始类型的值。

 

new Number(123).valueOf()  // 123

new String('abc').valueOf() // "abc"

new Boolean(true).valueOf() // true

 

toString()

toString方法返回对应的字符串形式。

 

new Number(123).toString() // "123"

new String('abc').toString() // "abc"

new Boolean(true).toString() // "true"

 

自定义方法

三种包装对象除了提供很多原生的实例方法(详见后文的介绍),还可以在原型上添加自定义方法和属性,供原始类型的值直接调用。

 

比如,我们可以新增一个double方法,使得字符串和数字翻倍。

 

String.prototype.double = function () {

  return this.valueOf() + this.valueOf();

};

 

'abc'.double()

// abcabc

 

Number.prototype.double = function () {

  return this.valueOf() + this.valueOf();

};

 

(123).double()

// 246

上面代码在123外面必须要加上圆括号,否则后面的点运算符(.)会被解释成小数点。

 

Boolean 对象

概述

Boolean对象是 JavaScript 的三个包装对象之一。作为构造函数,它主要用于生成布尔值的包装对象实例。

 

var b = new Boolean(true);

 

typeof b // "object"

b.valueOf() // true

上面代码的变量b是一个Boolean对象的实例,它的类型是对象,值为布尔值true

 

 

Boolean 函数的类型转换作用

Boolean对象除了可以作为构造函数,还可以单独使用,将任意值转为布尔值。这时Boolean就是一个单纯的工具方法。

 

Boolean(undefined) // false

Boolean(null) // false

Boolean(0) // false

Boolean('') // false

Boolean(NaN) // false

 

Boolean(1) // true

Boolean('false') // true

Boolean([]) // true

Boolean({}) // true

Boolean(function () {}) // true

Boolean(/foo/) // true

posted on 2018-02-24 10:59  Sharpest  阅读(136)  评论(0编辑  收藏  举报