Book Image

Object-Oriented JavaScript - Second Edition

Book Image

Object-Oriented JavaScript - Second Edition

Overview of this book

JavaScript is the behavior, the third pillar in today's paradigm that looks at web pages as something that consists of clearly distinguishable parts: content (HTML), presentation (CSS) and behavior (JavaScript). Using JavaScript, you can create not only web pages but also desktop widgets, browser and application extensions, and other pieces of software. It's a pretty good deal: you learn one language and then code all kinds of different applications. While there's one chapter specifically dedicated to the web browser environment including DOM, Events and AJAX tutorials, the rest is applicable to the other environments Many web developers have tried coding or adopting some bits of JavaScript, but it is time to "man up" and learn the language properly because it is the language of the browser and is, virtually, everywhere. This book starts from zero, not assuming any prior JavaScript programming knowledge and takes you through all the in-depth and exciting futures hidden behind the facade. Once listed in the "nice to have" sections of job postings, these days the knowledge of JavaScript is a deciding factor when it comes to hiring web developers. After reading this book you'll be prepared to ace your JavaScript job interview and even impress with some bits that the interviewer maybe didn't know. You should read this book if you want to be able to take your JavaScript skills to a new level of sophistication.
Table of Contents (19 chapters)
Object-Oriented JavaScript Second Edition
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Preface
Built-in Functions
Regular Expressions
Index

Math


Math is different from the other built-in objects because it cannot be used as a constructor to create objects. It's just a collection of static functions and constants. Some examples to illustrate the differences are as follows:

> typeof Date.prototype;
"object"
> typeof Math.prototype;
"undefined"
> typeof String;
"function"
> typeof Math;
"object"

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(4.5, 101, Math.PI);
101
> Math.min(4.5, 101, Math.PI);
3.141592653589793

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.exp(1) === Math.E;
true

Math.log(x)

Natural logarithm of x.

> Math.log(10) === Math.LN10;
true

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
For an random integer in a range, say between 10 and 100:
> Math.round(Math.random() * 90 + 10);
79