Login | Register | FAQ
Anonymous


Lesson 5: Smarter Scripts with Operators

By Maria Antonietta Perna

In the previous lesson you already employed an assignment operator ( = ) and an arithmetic operator, specifically the multiplication operator ( * ), to write a basic JavaScript shopping cart script.

We can easily see that to do something useful with JavaScript, we need a way to manipulate data and variables. We do this with operators.

In this lesson you are going to learn how to use:

  • arithmetic operators;
  • the + sign to concatenate text (concatenation operator);
  • comparison operators;
  • logical operators.

Also, you'll get plenty of opportunities to practice coding with variables. Let's get started!

Arithmetic operators

As you might have guessed, arithmetic operators are used to perform arithmetic operations between values or variables. Here's a table for your reference.

If x = 20, y = 5, and z = result, we have:

Operator Java Script Example Result
Addition: + z = x + y z = 25
Subtraction: - z = x - y z = 15
Multiplication: * z = x * y z = 100
Division: / z = x / y z = 4
Modulus: % z = x / y z = 0
Increment: ++ z = ++x z = 21
Decrement -- z = --x z = 19

I guess you're quite familiar with most arithmetical operators. The odd ones might be the ( % ) modulus, the ( ++ ) increment, and the ( -- ) decrement operators.

Modulus: the remainder left over after division.

Increment: take a number and add 1 to it.

Decrement: take a number and subtract 1 from it.

Time to get coding! Get your hands on the text editor and prepare a new HTML document like the one below:

Try out: add 2 values and print the result

	  
	  <!DOCTYPE html>
	  <html>
	  <head>
	  <title>Lesson 5: Operators and Comparisons</title>
	  </head>
	  <body>
	  <h1>Lesson 5: Operators and Comparisons</h1>
	  
	  <script type="text/javascript">
	  
	  //Create and initialize your variables
	  
	  var result = 0;
	  
	  var firstNum = 20;
	  
	  var secondNum = 5;
	  
	  //Addition: result = 25
	  
	  result = firstNum + secondNum;
	  
	  //write result on the page
	  
	  document.write(result);
	  
	  </script>
		
	  </body>
	  </html>
	  
	  

Nothing new here except for the JavaScript command document.write(). This command is translated by the JavaScript interpreter as saying:

"Hey browser, get the value within brackets and print it on the HTML document!"

In our case the value is a variable, therefore no ( ' ' ) quotes are used to enclose it. If you want to print some text instead, the command must be: document.write('some text.');. It's all very similar to the alert() command you've been using so far.

Now experiment with the code sample above by trying out all the other arithmetic operators and printing the result on the page.

Concatenation operator

If you want to add pieces of text together to form one long line of text, use the + sign. In Geeky talk a piece of text is called string, and it appears enclosed either in (' ') quotes or (" ") double-quotes (remember the 'Hello World' text you used in the alert() command? That is an instance of string).

Try out: concatenate strings and print a message on the page

	  
	  <!DOCTYPE html>
	  <html>
	  <head>
	  <title>Lesson 5: Operators and Comparisons</title>
	  </head>
	  <body>
	  <h1>Lesson 5: Operators and Comparisons</h1>
	  
	  <script type="text/javascript">
	  
	  //Create and initialize your variables
	  
	  var firstText = "Hello";
	  
	  var secondText = "World!";
	  
	  //Resulting value of assignment is Hello World!
	  
	  var message = firstText + ' ' + secondText;
	  
	  //write result on the page
	  
	  document.write(message);
	  
	  </script>
		
	  </body>
	  </html>
	  
	  

If you typed your code correctly, you should see the famous Hello World! text smack on the web page. Notice: you separate Hello and World! by concatenating quotes (' ') in-between each piece of text or variable.

Now get some practice concatenating strings before moving on.

Comparison operators

Often you need to compare different values and make your JavaScript program take different directions accordingly.

For example, you're coding a JavaScript script for a shopping cart application. At one point, your script will have a statement saying something along these lines: if the total amount to be paid is greater than or equal to $50 apply a 5% discount, if it's less than or equal to $50 do not apply 5% discount. Don't be impatient, you will learn how to code this kind of conditions in the next lesson.

It's here that comparison operators, such as equal to, less than, etc. enter the scene. Here below are listed all comparison operators for your reference.

If x = 10 we have:

Operator What is it? Example
== equal to x == 5 is false
=== exactly equal to value and type x === 10 is true
x === "10" is false
!= not equal x != 2 is true
> greater than x > 20 is false
< less than x < 20 is true
>= greater than or equal to x >= 20 is false
<= less than or equal to x <= 20 is true

Logical operators

You use logical operators when you need to determine the logic between certain values.

Going back to the shopping cart script example, you might want your script to apply a 5% discount if the following 2 conditions are both true: a given product costs more than $20 and is purchased before the 31st of December.

Here come logical operators to the rescue. Given that x = 10 and y = 5:

Operator What is it? Example
&& and (x < 20 && y > 1) is true
both conditions must be satisfied
|| or (x == 5 || y == 5) is true
at least 1 condition must be satisfied
! not !(x == y) is true

Questions, questions, questions

The tables above are self-explanatory, except for the following 2 questions:

  1. When you talk about === , what do you mean by equality of value and type?
  2. What's the difference between ( = ), ( == ), and ( === ) ?

Answer to question 1.

Values are the specific data, either directly in your JavaScript statements or contained in JavaScript variables. For example:

	  
	  var price = 5;
	  
	  

In the code snippet above, the variable price has value 5.

What's the type?

The type, or more precisely the data type, is the way JavaScript classifies data. You've come across 2 data types, that is, number and string (text). A third data type is Boolean, that is, true and false statements.

Therefore, when you compare 2 values using ( === ), the 2 values are compared on the basis of both their value and their data type:

	  
	  var firstNum = 4;
	  
	  var secondNum = 4;
	  
	  //this is true: both values are 4
	  
	  //and both values are of type number
	  
	  firstNum === secondNum;
	  
	  //let's use a string data type. A string uses ' '.
	  
	  var stringNum = '4';
	  
	  //Now === is false: 4 and '4' are different types
	  
	  firstNum === stringNum;
	  
	  

Answer to question 2.

The ( = ) operator is used to assign or give a value to a variable. It is not a sign for equality.

The ( == ) and ( === ) operators instead, do stand for equality. They do not assign values to variables. ( == ) compares only values, ( === ) compares both values and data type.

Summary

You've made it all the way through this lesson, congratulations! Now your scripts are not limited to just popping up messages. They start to be smart: they can make calculations, comparisons, and set truth conditions to evaluate their data.

In the next lesson you keep adding intelligence to your JavaScript with if ... else and switch statements.

Take a break and get ready for it!


Related topics in the RepliesViews
No related topics yet

+ Post a new topic


<< Lesson 4: Variables and Constants

Lesson 6: Even Smarter Scripts with if…else and switch >>

?>