Welcome to WebmasterWorld Guest from 54.158.55.251
Forum Moderators: open
If you're already writing your own javascript from scratch, or are familiar with programming in almost any language, then this column may not be for you. But if you're mostly a copy and paste type and you wish you could understand more about what those lines of javascript really say  then learning the operators can be a valuable starting place.
Hope this post helps you make sense out of those lines of js you copy from here and there.
What Is An Operator?
In programming, an operator is an entity that performs some operation on an "operand"  an element or group of elements of some kind. It is common for an operator to combine two operands to generate a new value  that type of operator is called a binary operator. A simple example of a binary operator in arithmetic is the basic addition operator (+). As we all know, it takes two numbers and generates a third number which is their sum.
In javascript some operators only transform one single element  they are known as unary operators. A simple unary operator is the minus sign, which reverses the sign of any expression it is applied to.
And finally, javascript supports a threeway, or ternary operator  we'll get around to that one at the end of this post.
Don't assume too much
Javascript makes use of some of some very familiar symbols as operators. But those symbols often have slightly different meanings than what you expect from your familiarity with arithmetic. Without exact knowledge of the operators, a line of javascript can make less sense than a political speech made in Pig Latin.
So here's a list of the most common operators. There are more operators than these, and there are also lots of fine points to grasp when you really get into the nitty gritty of it all. But just this much information will improve your ability to move past the copy and paste stage and give you a fighting chance when you need to make small changes.
Computational Operators
These operators perform a computation, and the basic four are certainly the easiest to understand, since they look just like a line of arithmetic. Note, however, that the + operator can also be used even if the variables are not numeric  it can "add" two character strings together  concatenating them into a new string.
+
Adds two elements together

Subtracts the right hand element
from the left hand element.
*
Multiplies the two elements together.
/
Divides the left hand element by
the right hand element.
Shorthand Computation
Next we have a few shorthand computations done with operators.
These are a little less familiar when you first run into them.
++
Adds one to the value of an element.
There are two ways of applying this operator.
1) When an element follows the doubled plus sign,
its value is first increased by one and then the
newly calculated value is returned.
2) When an element precedes the doubled plus sign,
then the current value of that element is returned
BEFORE the addition takes place.
Examples:
++counter increases the current value of the variable "counter" by 1 and returns that new result. If counter is equal to 7 when this line is parsed, the value of counter becomes 8, and 8 is returned.
counter++ first returns the present value of "counter" and then increases the current value by 1. If counter is equal to 7 when this line is parsed, 7 is returned and then the value of counter becomes 8.

Subtracts one from the value of an element.
1) When an element follows the doubled minus
sign, it's value is first decreased by one and
then the newly calculated value is returned.
2) When an element precedes the doubled minus
sign, then the current value of the element is
returned BEFORE the subtraction takes place.
Examples:
counter decreases the current value of the variable "counter" by 1 and returns that new result. If counter is equal to 7 when this line is parsed, the value of counter becomes 6, and then 6 is returned.
counter first returns the present value of "counter" and then decreases the current value by 1. If counter is equal to 7 when this line is parsed, 7 is returned first, and then the value of counter becomes 6.
Assignment Operators
These operators are used to set an expression equal to a certain value.
=
This familiar symbol sets the element
on its left side to be equal to the value
on its right side.
Javascript is very flexible with data types, so the same operator can be used for assigning numerical values, character string values, or Boolean values.
In fact, a variable can legally be reassigned to a different data type after it has been declared  and this is not at all the case at all in many programming languages.
Examples:
counter = 1 sets the variable named "counter" to a numerical value of 1
lastname = "Johnson" sets the variable named "lastname" to a value of "Johnson"
cookie = false sets the variable named "cookie" to a Boolean value of false.
+=
This doubled symbol is a shortcut
for adding to the current value.
=
This doubled symbol is a shortcut for
substracting from the current value.
*=
This doubled symbol is a shortcut for
multiplying the current value by some
factor
/=
This doubled symbol is a shortcut for
dividing the current value
Comparison Operators
These operators compare the left and right operands and return a Boolean value of "True" if the entire statement evaluates as true. They are commonly used to discover if a certain condition is true (or false), so that a line of code is executed only in that case.
==
The double equal sign is a test
for equality.
Remember that the single equal sign is an assignment operator. It actually gives the left side a new value, dicatated by the expression on the right side. So when javascript wants to test for equality, this doubled sign is used.
Example:
counter == 3 returns a value of "True" if and only if the current value of counter is actually 3.
!=
This doubled sign is a test for
inequality; you can read it as
"is not equal to".
===
The tripled equal sign is a test for
identity. Identity is a stricter test
than simple equality.
To understand the difference between equality and identity, remember that javascript is very loose about data types. You can have a variable named "t" that stands for the character "2" and without any extra statements, you can use the expression t+3 and javascript will turn "t" into a numeric instead of a character.
This looseness can trip you up at times, generating nasty surprises when you don't keep it in mind. But this freedom with data types does make for very compact code. OK, so back to identity.
Example
expression1 === expression2 will evaluate as true only if the two expressions are identical without going through any data type conversion. There is also a nonidentity operator, written as !==. As you have probably guessed by now, the exclamation point means "not" in javascript.
>
This familiar symbol from algebra
is a test for "greater than".
<
This familiar symbol from algebra
is a test for "less than".
>= and <=
These two operators check for exactly
what you might think  they test for
"greater than or equal to" and
"less than or equal to".
Logical Operators
These operators look at expressions and return a Boolean value of "True" or "False".
&&
The doubled ampersand returns a value
of "True" only when both sides of the
expression are True. Think of it as
saying "and"
¦¦
The doubled pipe returns a value of
"True" if either side of the expression
is True. Think of it as saying "or"
So some authors claim that my example should evaluate as False if today is both Friday and the 13th  and that's just not so, they're wrong. If either or both sides of the ¦¦ operator are True, the entire expression evaluates as True.
What the javascript engine actually does is evaluate the left hand side first. If that expression is True, then the whole operation stops and the right side is not even evaluated. A value of True is immediately returned.

There are many other operators I'm not getting to  for instance, there's the period . which takes the left hand side and accesses the right side as a "property of". There's [ ] which designates an array and can contain an array element. There's ( ), which designates a javascript function call and may contain arguments for that function. But all of this gets into more complex territory, and I want to stay basic here.
But before I sign off, I promised you the ternary operator, an operator that works with three elements at once.

?:
This is a very useful shorthand expression.
It can be replaced by a group of "if  then"
statements, but that can get into very bulky
code very fast.
In use, this operator takes the form expression1 ? expression2 : expression 3. Expression1 must be a Boolean  that means it must evaluate to either True or False. If expression1 is True, the ternary operator will return expression2 as a result. If expression1 is False, then the ternary operator will return expression3 as a result.
Example:
(counter>10)? (counter=0) : (counter++) If the value of the variable named "counter" is greater than ten, then counter is reset to zero. If the value of counter is not greater than ten, then its value is increased by one.
If this is your first foray into javascript, I've probably given you more than enough to digest. So until next time, I'm signing off.
[edited by: tedster at 6:41 pm (utc) on Feb. 3, 2006]
If anyone has any ideas for future JavaScript JumpStart topics, feel free to let us know.