yName) Non-standard 
    4. [ ` Function: length ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/length)
    5. [ ` Function: name ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name)
    6. [ ` Function: prototype ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/prototype)
  9. Methods 
    1. [ ` Function.prototype[@@hasInstance]() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/@@hasInstance)
    2. [ ` Function.prototype.apply() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply)
    3. [ ` Function.prototype.bind() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind)
    4. [ ` Function.prototype.call() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/call)
    5. [ ` Function.prototype.toString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/toString)
  10. [ ` Object ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object)
  11. Properties 
    1. [ ` Object.prototype.constructor ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/constructor)
    2. [ ` Object.prototype.__proto__ ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/proto) Deprecated 
  12. Methods 
    1. [ ` Object.prototype.__defineGetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineGetter__) Deprecated 
    2. [ ` Object.prototype.__defineSetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__defineSetter__) Deprecated 
    3. [ ` Object.prototype.__lookupGetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupGetter__) Deprecated 
    4. [ ` Object.prototype.__lookupSetter__() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/__lookupSetter__) Deprecated 
    5. [ ` Object.prototype.hasOwnProperty() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty)
    6. [ ` Object.prototype.isPrototypeOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/isPrototypeOf)
    7. [ ` Object.prototype.propertyIsEnumerable() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/propertyIsEnumerable)
    8. [ ` Object.prototype.toLocaleString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toLocaleString)
    9. [ ` Object.prototype.toString() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString)
    10. [ ` Object.prototype.valueOf() ` ](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/valueOf)

##  In this article

  * Description 
  * Constructor 
  * Instance properties 
  * Instance methods 
  * Examples 
  * Specifications 
  * Browser compatibility 
  * See also 

#  Boolean

The **` Boolean ` ** object represents a truth value: ` true ` or ` false ` .

##  Description

###  Boolean primitives and Boolean objects

For converting non-boolean values to boolean, use ` Boolean ` as a function or
use the [ double NOT ](/en-
US/docs/Web/JavaScript/Reference/Operators/Logical_NOT#double_not_!!)
operator. Do not use the ` Boolean() ` constructor with ` new ` .

js

    
    
    const good = Boolean(expression);
    const good2 = !!expression;
    

js

    
    
    const bad = new Boolean(expression); // don't use this!
    

This is because _all_ objects, including a ` Boolean ` object whose wrapped
value is ` false ` , are [ truthy ](/en-US/docs/Glossary/Truthy) and evaluate
to ` true ` in places such as conditional statements. (See also the  boolean
coercion  section below.)

js

    
    
    if (new Boolean(true)) {
      console.log("This log is printed.");
    }
    
    if (new Boolean(false)) {
      console.log("This log is ALSO printed.");
    }
    
    const myFalse = new Boolean(false); // myFalse is a Boolean object (not the primitive value false)
    const g = Boolean(myFalse); // g is true
    const myString = new String("Hello"); // myString is a String object
    const s = Boolean(myString); // s is