Operators
The values we have stored in our variables aren’t going to be much use to us unless we can manipulate them in calculations.
Arithmetic Operations
First, JavaScript allows us to carry out operations using the standard arithmetic operators of addition, subtraction, multiplication, and division.
var theSum = 4 + 3;
As you’ll have guessed, after this statement has been executed the variable theSum will contain a value of 7. We can use variable names in our operations too:
var productCount = 2; var subtotal = 14.98; var shipping = 2.75; var total = subtotal + shipping;
We can use JavaScript to subtract (-), multiply (*), and divide (/) in a similar manner:
subtotal = total shipping; var salesTax = total * 0.15; var productPrice = subtotal / productCount;
To calculate the remainder from a division, we can use JavaScript’s modulus division operator. This is denoted by the % character:
var itemsPerBox = 12; var itemsToBeBoxed = 40; var itemsInLastBox = itemsToBeBoxed % itemsPerBox;
In this example, the variable itemsInLastBox would contain the number 4 after the last statement completes.
JavaScript also has convenient operators to increment (++) or decrement (--) the value of a variable:
productCount++;
is equivalent to the statement
productCount = productCount + 1;
Similarly,
items--;
is just the same as
items = items 1;
A more comprehensive list of JavaScript’s arithmetic operators appears in Appendix B, “JavaScript Quick Reference.”
Operator Precedence
When you use several operators in the same calculation, JavaScript uses precedence rules to determine in what order the calculation should be done. For example, consider the statement
var average = a + b + c / 3;
If, as the variable’s name implies, you’re trying to calculate an average, this would not give the desired result; the division operation would be carried out on c before adding the values of a and b to the result. To calculate the average correctly, we would have to add parentheses to our statement, like this:
var average = (a + b + c) / 3;
If you have doubts about the precedence rules, I would recommend that you always use parentheses liberally. There is no cost to doing so, it makes your code easier to read (both for you and for anyone else who later has to edit or decipher it), and it ensures that precedence issues don’t spoil your calculations.
Using the + Operator with Strings
Arithmetic operators don’t make much sense if the variables they operate on contain strings rather than numeric values. The exception is the + operator, which JavaScript interprets as an instruction to concatenate (join together sequentially) two or more strings:
var firstname = “John”; var surname = “Doe”; var fullname = firstname + “ “ + surname; // the variable fullname now contains the value “John Doe”
If you try to use the + operator on two variables, one of which is a string and the other numeric, JavaScript converts the numeric value to a string and concatenates the two:
var name = “David”; var age = 45; alert(name + age);
Figure 2.2 shows the result of using the + operator on a string and a numeric value.
Figure 2.2 Concatenating a string and a numeric value
We talk about JavaScript data types, and string operations in general, much more in Hour 5, “Numbers and Strings.”