#### Overview of this book

Object-Oriented JavaScript
Credits
Preface
Free Chapter
Introduction
Primitive Data Types, Arrays, Loops, and Conditions
Functions
Objects
Prototype
Inheritance
The Browser Environment
Coding and Design Patterns
Reserved Words
Built-in Functions
Built-in Objects
Regular Expressions
Index

## Math

`Math` is a little different from the other built-in objects, because it cannot be used as a constructor to create objects. It is just a collection of functions and constants. Some examples, to illustrate the difference, are given below:

`>>> typeof String.prototype`

"object"

`>>> typeof Date.prototype`

"object"

`>>> typeof Math.prototype`

"undefined"

`>>> typeof Math`

"object"

`>>> typeof String`

"function"

### Members of the Math Object

Property/Method

Description

`Math.E`

`Math.LN10`

`Math.LN2`

`Math.LOG2E`

`Math.LOG10E`

`Math.PI`

`Math.SQRT1_2`

`Math.SQRT2`

These are some useful math constants, all read-only. Here are their values:

`>>> Math.E`

2.718281828459045

`>>> Math.LN10`

2.302585092994046

`>>> Math.LN2`

0.6931471805599453

`>>> Math.LOG2E`

1.4426950408889634

`>>> Math.LOG10E`

0.4342944819032518

`>>> Math.PI`

3.141592653589793

`>>> Math.SQRT1_2`

0.7071067811865476

`>>> Math.SQRT2`

1.4142135623730951

`Math.acos(x)`

`Math.asin(x)`

`Math.atan(x)`

`Math.atan2(y, x)`

`Math.cos(x)`

`Math.sin(x)`

`Math.tan(x)`

Trigonometric functions

`Math.round(x)`

`Math.floor(x)`

`Math.ceil(x)`

`round()` gives you the nearest integer, `ceil()` rounds up and `floor()` rounds down:

`>>> Math.round(5.5)`

6

`>>> Math.floor(5.5)`

5

`>>> Math.ceil(5.1)`

6

`Math.max(num1, num2, num3, ...)`

`Math.min(num1, num2, num3, ...) `

`max()` returns the largest and `min()` returns the smallest of the numbers passed to them as arguments. If at least one of the input parameters is `NaN`, the result is also `NaN`.

`>>> Math.max(2, 101, 4.5)`

101

`>>> Math.min(2, 101, 4.5)`

2

`Math.abs(x)`

Absolute value.

`>>> Math.abs(-101)`

101

`>>> Math.abs(101)`

101

`Math.exp(x) `

Exponential function: `Math.E` to the power of `x`

`Math.log(x) `

Natural logarithm of `x.`

`Math.sqrt(x)`

Square root of `x` `.`

`>>> Math.sqrt(9)`

3

`>>> Math.sqrt(2) === Math.SQRT2`

true

`Math.pow(x, y)`

`x` to the power of `y`.

`>>> Math.pow(3, 2)`

9

`Math.random()`

Random number between 0 and 1 (including 0).

`>>> Math.random()`

0.8279076443185321