Table of Contents | Previous | Next | Index

# Boolean

The `Boolean` object is an object wrapper for a boolean value.

Core object |
Implemented in | JavaScript 1.1, NES 2.0 JavaScript 1.3: added `toSource` method
ECMA version | ECMA-262

#### Created by

The `Boolean` constructor:

    new Boolean(value)

#### Parameters

    value

The initial value of the `Boolean` object. The value is converted to a `boolean` value, if necessary. If value is omitted or is 0, -0, null, false, `NaN`, undefined, or the empty string (`""`), the object has an initial value of false. All other values, including any object or the string `"false"`, create an object with an initial value of true.

#### Description

Do not confuse the primitive Boolean values true and false with the true and false values of the Boolean object. Any object whose value is not `undefined` or `null`, including a Boolean object whose value is false, evaluates to true when passed to a conditional statement. For example, the condition in the following `if` statement evaluates to `true`:

    x = new Boolean(false);
    if(x) //the condition is true

This behavior does not apply to Boolean primitives. For example, the condition in the following `if` statement evaluates to `false`:

    x = false;
    if(x) //the condition is false

Do not use a `Boolean` object to convert a non-boolean value to a boolean value. Instead, use Boolean as a function to perform this task:

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

If you specify any object, including a Boolean object whose value is false, as the initial value of a Boolean object, the new Boolean object has a value of true.

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

In JavaScript 1.3 and later versions, do not use a Boolean object in place of a Boolean primitive.

#### Backward Compatibility

JavaScript 1.2 and earlier versions. When a `Boolean` object is used as the condition in a conditional test, JavaScript returns the value of the `Boolean` object. For example, a `Boolean` object whose value is false is treated as the primitive value false, and a `Boolean` object whose value is true is treated as the primitive value `true` in conditional tests. If the `Boolean` object is a `false` object, the conditional statement evaluates to `false`.

#### Property Summary

Property | Description
--- | ---

    constructor

Specifies the function that creates an object's prototype.

    prototype

Defines a property that is shared by all Boolean objects.

#### Method Summary

Method | Description
--- | ---

    toSource

Returns an object literal representing the specified Boolean object; you can use this value to create a new object. Overrides the `Object.toSource` method.

    toString

Returns a string representing the specified object. Overrides the `Object.toString` method.

    valueOf

Returns the primitive value of a Boolean object. Overrides the `Object.valueOf` method.

In addition, this object inherits the `watch` and `unwatch` methods from `Object`.

#### Examples

The following examples create `Boolean` objects with an initial value of false:

    bNoParam = new Boolean()
    bZero = new Boolean(0)
    bNull = new Boolean(null)
    bEmptyString = new Boolean("")
    bfalse = new Boolean(false)

The following examples create `Boolean` objects with an initial value of true:

    btrue = new Boolean(true)
    btrueString = new Boolean("true")
    bfalseString = new Boolean("false")
    bSuLin = new Boolean("Su Lin")

## constructor

Specifies the function that creates an object's prototype. Note that the value of this property is a reference to the function itself, not a string containing the function's name.

Property of | `Boolean`
Implemented in | JavaScript 1.1, NES 2.0
ECMA version | ECMA-262

#### Description

See `Object.constructor`.

## prototype

Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class. For information on prototypes, see `Function.prototype`.

Property of | `Boolean`
Implemented in | JavaScript 1.1, NES 2.0
ECMA version | ECMA-262

## toSource

Returns a string representing the source code of the object.

Method of | `Boolean`
Implemented in | JavaScript 1.3

#### Syntax

    toSource()

#### Parameters

None

#### Description

The `toSource` method returns the following values:

- For the built-in `Boolean` object, `toSource` returns the following string indicating that the source code is not available:

       function Boolean() {
          [native code]
       }

- For instances of `Boolean`, `toSource` returns a string representing the source code.

This method is usually called internally by JavaScript and not explicitly in code.

#### See also

`Object.toSource`

## toString

Returns a string representing the specified Boolean object.

Method of | `Boolean`
Implemented in | JavaScript 1.1, NES 2.0
ECMA version | ECMA-262

#### Syntax

    toString()

#### Parameters

None.

#### Description

The `Boolean` object overrides the `toString` method of the `Object` object; it does not inherit `Object.toString`. For `Boolean` objects, the `toString` method returns a string representation of the object. JavaScript calls the `toString` method automatically when a Boolean is to be represented as a text value or when a Boolean is referred to in a string concatenation. For `Boolean` objects and values, the built-in `toString` method returns the string `"true"` or `"false"` depending on the value of the boolean object. In the following code, `flag.toString` returns `"true"`.

    var flag = new Boolean(true)
    var myVar=flag.toString()

#### See also

`Object.toString`

## valueOf

Returns the primitive value of a Boolean object.

Method of | `Boolean`
Implemented in | JavaScript 1.1
ECMA version | ECMA-262

#### Syntax

    valueOf()

#### Parameters

None

#### Description

The `valueOf` method of `Boolean` returns the primitive value of a Boolean object or literal Boolean as a Boolean data type. This method is usually called internally by JavaScript and not explicitly in code.

#### Examples

    x = new Boolean();
    myVar=x.valueOf()      //assigns false to myVar

#### See also

`Object.valueOf`

Table of Contents | Previous | Next | Index

Last Updated: 05/28/99 11:59:04

Copyright (c) 1999 Netscape Communications Corporation