JavaScript Number Primitive
A number primitive represents a numeric value.
The type name is number.
Number values are one of JavaScript's 7 primitive types.
Creating Numbers
Number values can be written as integers or decimals.
Type Information
The type of a primitive number value is "number".
Integers and Floating-Point Numbers
JavaScript uses the primitive number type for both integers and decimal numbers.
| Value | Type |
|---|---|
10 |
number |
10.5 |
number |
In JavaScript, decimal numbers are floating-point numbers.
Exponential Notation
Large and small numbers can be written using exponential notation.
The letter e represents "times 10 raised to a power".
| Value | Meaning | Result |
|---|---|---|
| 1.05e+5 | 1.05 x 105 | 105000 |
| 1.05e-5 | 1.05 x 10-5 | 0.0000105 |
Exponential notation is commonly used for very large or very small numbers.
| Expression | Result |
|---|---|
1e6 |
1000000 |
1e9 |
1000000000 |
Special Number Values
JavaScript provides several special numeric values.
| Value | Description |
|---|---|
NaN |
Not a Number |
Infinity |
Positive infinity |
-Infinity |
Negative infinity |
NaN
NaN means "Not a Number".
It represents an invalid numeric result.
Primitive Numbers vs Number Objects
A numeric literal creates a primitive number.
The new Number() constructor creates a Number object.
| Primitive - Recommended | Number Object - Rarely needed |
|---|---|
let x = 100 |
let x = new Number(100) |
typeof x === "number" |
typeof x === "object" |
Number Methods
Primitive numbers can use Number methods.
JavaScript temporarily wraps the primitive value in a Number object when a method is called.
Number Conversion
The Number() function converts values to numbers.
| Expression | Result |
|---|---|
Number("123") |
123 |
Number(true) |
1 |
Number(false) |
0 |
Number("Hello") |
NaN |
Safe Integers
JavaScript numbers can safely represent integers between:
-(2^53 - 1)
and
2^53 - 1
For larger integers, use the BigInt primitive type.