Basic Math
This section is a run-through of the basic math operators available in Javascript.
Table of Contents
- Available Math Operators
- Order of Operations
- Modulus
- Exponents
- Negative Exponents
- Fractional Exponents (Roots)
- Modify-and-Assign Operators
- Unary Increment and Decrement
- Numeric Conversions from Strings
Available Math Operators
Like most programming languages, Javascript uses the following symbols for the basic math operations:
- Addition:
+
- Subtractions:
-
- Multiplication:
*
- Division:
\
- Exponent (To The Power Of):
**
- Remainder (Modulus):
%
- Grouping Parenthesis:
()
Order of Operations
PEMMDAS order of operations rules are applied:
- P: Parenthesis First
- E: Exponents Next
- MMD: Modulus, Multiplication, Division (From Left to Right)
- AS: Addition and Substraction (From Left to Right)
🎵 Note:
This is a simplified version of the precedence rules. See the complete table here.
Modulus
The modulus operator %
calculates the remainder of a division.
The expression a % b
means: What remains after taking away all groups of b
from a
.
So, for example, 15 % 4
has a modulus of 3, because 4 goes into 15 three times with 2 remaining.
Modulus is commonly used to determine if a number is even or odd:
if (someNumber % 2 == 0) {
console.log("The value of the someNumber variable is even.");
}
Exponents
Exponents are used to multiply a number with itself any number of times.
For example, 2 * 2 * 2 * 2
could be written 2**4
.
Remember we also have a special syntax that represents powers of ten:
We can write 3 * 10**23
as 3e23
using scientific notation.
Negative Exponents
Negative exponents are used to perform the reciprocal of an exponent.
By this I mean that a**-b
is another way of writing 1 / a**b
.
For example, 2**-4
is a short-form for 1 / (2 * 2 * 2 * 2)
.
Fractional Exponents (Roots)
We can use fractional exponents to calculate roots.
let squareRootOfTen = 10 ** (1 / 2); // Square root of 10
let cubeRootofEight = 8 ** (1 / 3); // Cube root of 8
Modify-and-Assign Operators
We can pair the equals operator with other math operators to modify and assign the result back to a variable.
let dreams = 4;
dreams += 3; // Same as: dreams = dreams + 3
dreams -= 1; // Same as: dreams = dreams - 1
dreams /= 2; // Same as: dreams = dreams / 2
dreams *= 5; // Same as: dreams = dreams * 5
dreams **= 1 / 2; // Same as: dreams = dreams**(1/2)
Unary Increment and Decrement
Like other C-influenced languages we have increment (++
) and decrement (--
) operators:
let milesFromHome = 14333; // Miles away from everything you hold dear.
milesFromHome++; // Up to 14334. Sames as: milesFromHome += 1
milesFromHome--; // Back to 14333. Same as: milesFromHome -= 1
milesFromHome--; // Down to 14332
Numeric Conversions from Strings
Although Javascript will automatically convert strings to numbers, it’s safer to explicitly perform the conversion using Number
:
let tearsPerMinute = 123;
let minutesCrying = Number(prompt("😠How long have you been crying?"));
console.log(`Tears Fallen: ${tearsPerMinute * minutesCrying}`);
If the user inputs something that isn’t a number, then minutesCrying
will be set to NaN
.