**Heads up!** To view this whole video, sign in with your Courses account or enroll in your free 7-day trial.
Sign In
Enroll

Preview

Start a free Courses trial

to watch this video

In addition to the arithmetic operators you learned, JavaScript has a built-in `Math` object used to perform complex mathematical operations on numbers.

### Resources

[MUSIC]
0:00

In this stage, you're going to learn how
to create random numbers in JavaScript.
0:04

Applications often need a way to provide
users random choices or outcomes.
0:08

Generating random numbers
comes in handy for
0:13

games or anytime you want to make
your program less predictable.
0:15

For example, in a dice or
card game, each dice roll or
0:19

card shuffle might result in a different
outcome that's randomly generated.
0:22

You create random numbers in JavaScript
using what's called the math object.
0:26

Even though you've already
worked with objects,
0:30

we haven't specifically talked
about what they are just yet.
0:32

So let me teach you some of
the basics of objects first.
0:36

Then we'll dive into the math object and
start generating randomness.
0:38

In JavaScript, data types like strings,
Booleans, and numbers are formally called
0:42

primitive data types, because they're
basic values built into the language.
0:48

A string or number primitive, by itself,
cannot be altered or manipulated.
0:52

It turns out that JavaScript
automatically adds a special wrapper
0:57

around most primitive types so
that you're able to alter them.
1:01

That wrapper is called an object.
1:05

And as you'll learn, JavaScript is
made up of different types of objects.
1:07

In a previous course,
1:11

you learned that even though a string
is just a series of characters inside
1:12

quotation marks, the JavaScript engine
treats it as an object behind the scenes,
1:16

which unlocks useful functionality
by way of properties and methods.
1:21

All objects have properties.
1:25

A property is just like a variable that's
associated with or attached to the object.
1:27

The string object,
1:32

for example, has a property named length,
which holds a numeric value.
1:33

In fact, you've already used the length
property to find the number of characters
1:37

in a string.
1:40

Each defined string has
its own link property,
1:42

because different strings can have
different number of characters in them.
1:45

Objects also have actions
that they can perform.
1:49

We call these actions methods.
1:52

A string, for example,
has the toUppercase method,
1:54

which you've used before to convert
a string to all uppercase letters.
1:57

There are other types of
objects in JavaScript,
2:01

which you'll learn as you progress
through our JavaScript curriculum.
2:04

For now, I'll introduce you to a special
object called the math object.
2:07

In addition to the arithmetic operators
you learned, JavaScript has a built-in
2:12

math object used to perform complex
mathematical operations on numbers.
2:16

For example,
finding the square root of a number or
2:20

working with trigonometric
functions like tangents, sines and
2:23

cosines, which can help you create
more realistic games and animations.
2:26

The MDN or Mozilla Developer Network
provides useful information
2:31

on the properties and
methods of the math object.
2:35

Here you can see that the math object
has some properties and many methods.
2:38

The properties are built-in numbers
you can use in certain calculations.
2:43

For example, PI or Math.PI is used
to calculate the area of a circle.
2:46

The methods are mathematical functions
that are built into JavaScript.
2:53

For example, the Math.round
method takes a number like 2.2,
2:57

and rounds it to the nearest whole number,
2 in this case.
3:02

I'll use the JavaScript
console to demonstrate how
3:06

the Math.round method works.
3:09

The math object is a bit unusual in
that you type the word Math with
3:11

a capital M followed by a period and
the method name.
3:16

You will then provide the method a number
value to work with, like 2.2, and
3:20

the method returns a new value,
in this case, 2.
3:24

I'll try another number,
44.9 and see what happens.
3:28

Math.round rounds 44.9 to the nearest
integer and it returns 45.
3:32

The math object is like a built-in library
full of useful mathematical functions.
3:39

As you can see,
there are lots of different methods for
3:44

specific types of math.
3:47

Some are more complex than others.
3:48

For example,
3:50

Math.max returns the largest number from
a set of number values passed into it.
3:52

And Math.acos calculates
the arccosine of a number.
3:57

I have no idea what that is.
4:02

Up next,
4:04

you'll learn how to create a random number
using JavaScript, a really handy skill.
4:05

You need to sign up for Treehouse in order to download course files.

Sign up