非常教程

JavaScript参考手册

布尔型 | Boolean

Boolean

Boolean对象是一个布尔值的对象包装器。

语法

new Boolean([value])

参数

value 可选,用来初始化 Boolean 对象的值。

描述

如果第一个参数不是布尔值,则会将其转换为布尔值。如果省略该参数,或者其值为 0-0nullfalseNaNundefined、或者空字符串(""),则生成的 Boolean 对象的值为 false。如果传入的参数是 DOM 对象  document.all,也会生成值为 false 的 Boolean对象。任何其他的值,包括值为 "false" 的字符串和任何对象,都会创建一个值为 true 的 Boolean 对象。

注意不要将基本类型中的布尔值 true 和 false 与值为 true 和 false 的 Boolean 对象弄混了。

任何值为null,undefined的对象,或者Boolean值为false的对象,在传递给条件语句时都会被评估为true。例如,以下if语句中的条件评估为true

var x = new Boolean(false);
if (x) {
  // this code is executed
}

基本类型的布尔值不受此规则影响。例如下面的if语句的条件为假:

var x = false;
if (x) {
  // this code is not executed
}

不要用创建 Boolean 对象的方式将一个非布尔值转化成布尔值,直接将 Boolean 当做转换函数来使用即可:

var x = Boolean(expression);     // preferred
var x = new Boolean(expression); // don't use

对于任何对象,即使是值为falseBoolean对象,当将其传给Boolean函数时,生成的 Boolean 对象的值都是 true

var myFalse = new Boolean(false);   // initial value of false
var g = new Boolean(myFalse);       // initial value of true
var myString = new String('Hello'); // string object
var s = new Boolean(myString);      // initial value of true

最后,不要在应该使用基本类型布尔值的地方使用 Boolean 对象。

属性

Boolean.lengthlength属性,值为 1。Boolean.prototypeBoolean 构造函数的原型对象。

方法

Boolean 对象自身没有任何方法,不过它从自己的原型链上继承了一些方法,见下面的“Boolean实例”小节。

Boolean 实例

所有 Boolean 实例都继承于Boolean.prototype。与所有的构造函数一样,Boolean 的原型对象为其实例提供继承属性和方法。

属性

Boolean.prototype.constructor返回创建了实例原型的函数。默认为Boolean函数。

方法

Boolean.prototype.toSource()返回包含Boolean对象源码的字符串;你可以使用这个字符串来创建一个等价的对象。覆盖了Object.prototype.toSource()方法。

Boolean.prototype.toString()根据对象的值来返回一个字符串:"true""false"。覆盖了Object.prototype.toString()方法。

Boolean.prototype.valueOf()返回Boolean对象的原始值。覆盖了Object.prototype.valueOf()方法。

示例

创建值为 false 的 Boolean 对象

var bNoParam = new Boolean();
var bZero = new Boolean(0);
var bNull = new Boolean(null);
var bEmptyString = new Boolean('');
var bfalse = new Boolean(false);

创建值为 true 的  Boolean 对象

var btrue = new Boolean(true);
var btrueString = new Boolean('true');
var bfalseString = new Boolean('false');
var bSuLin = new Boolean('Su Lin');
var bArrayProto = new Boolean([]);
var bObjProto = new Boolean({});

规范

Specification

Status

Comment

ECMAScript 1st Edition (ECMA-262)

Standard

初始定义,在 JavaScript 1.0 中实现

ECMAScript 5.1 (ECMA-262)The definition of 'Boolean' in that specification.

Standard

ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Boolean' in that specification.

Standard

ECMAScript Latest Draft (ECMA-262)The definition of 'Boolean' in that specification.

Living Standard

浏览器兼容性

Feature

Chrome

Edge

Firefox

Internet Explorer

Opera

Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

prototype

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

toSource

No

No

(Yes)

No

No

No

toString

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

valueOf

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

Feature

Android

Chrome for Android

Edge mobile

Firefox for Android

IE mobile

Opera Android

iOS Safari

Basic Support

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

prototype

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

toSource

No

No

No

(Yes)

No

No

No

toString

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

valueOf

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

(Yes)

JavaScript

JavaScript 是一种高级编程语言,通过解释执行,是一门动态类型,面向对象(基于原型)的解释型语言。它已经由ECMA(欧洲电脑制造商协会)通过 ECMAScript 实现语言的标准化。它被世界上的绝大多数网站所使用,也被世界主流浏览器( Chrome、IE、FireFox、Safari、Opera )支持。JavaScript 是一门基于原型、函数先行的语言,是一门多范式的语言,它支持面向对象编程,命令式编程,以及函数式编程。它提供语法来操控文本、数组、日期以及正则表达式等,不支持 I/O,比如网络