Table 2.1 JavaScript operators.
Assignment Operators
An assignment operator assigns a value to its left operand based on the value of its right operand.
Implemented in | Navigator 2.0 |
The basic assignment operator is equal (=), which assigns the value of its right operand to its left operand. That is, x = y assigns the value of y to x. The other assignment operators are shorthand for standard operations, as shown in Table 2.2.
Table 2.2 Assignment operators
Comparison Operators
A comparison operator compares its operands and returns a logical value based on whether the comparison is true or not. The operands can be numerical or string values. When used on string values, the comparisons are based on the standard lexicographical ordering.
Implemented in | Navigator 2.0 |
They are described in Table 2.3. In the examples in this table, assume var1
has been assigned the value 3 and var2
had been assigned the value 4.
Table 2.3 Comparison operators
Arithmetic Operators
Arithmetic operators take numerical values (either literals or variables) as their operands and return a single numerical value. The standard arithmetic operators are addition (+), subtraction (-), multiplication (*), and division (/). These operators work as they do in other programming languages.
Implemented in | Navigator 2.0 |
% (Modulus)
The modulus operator is used as follows:
var1 % var2
The modulus operator returns the first operand modulo the second operand, that is, var1
modulo var2
, in the preceding statement, where var1
and var2
are variables. The modulo function is the integer remainder of dividing var1
by var2
. For example, 12 % 5 returns 2.
++ (Increment)
The increment operator is used as follows:
var++
or ++var
This operator increments (adds one to) its operand and returns a value. If used postfix, with operator after operand (for example, x++), then it returns the value before incrementing. If used prefix with operator before operand (for example, ++x), then it returns the value after incrementing.
For example, if x is three, then the statement y = x++
sets y
to 3 and increments x
to 4. If x
is 3, then the statement y = ++x
increments x
to 4 and sets y
to 4.
-- (Decrement)
The decrement operator is used as follows:
var--
or --var
This operator decrements (subtracts one from) its operand and returns a value. If used postfix (for example, x--), then it returns the value before decrementing. If used prefix (for example, --x), then it returns the value after decrementing.
For example, if x is three, then the statement y = x--
sets y
to 3 and decrements x
to 2. If x
is 3, then the statement y = --x
decrements x
to 2 and sets y
to 2.
- (Unary Negation)
The unary negation operator precedes its operand and negates it. For example, y = -x
negates the value of x
and assigns that to y
; that is, if x
were 3, y
would get the value -3 and x
would retain the value 3.
Bitwise Operators
Bitwise operators treat their operands as a set of bits (zeros and ones), rather than as decimal, hexadecimal, or octal numbers. For example, the decimal number nine has a binary representation of 1001. Bitwise operators perform their operations on such binary representations, but they return standard JavaScript numerical values.
Table 2.4 summarizes JavaScript's bitwise operators
Implemented in | Navigator 2.0 |
Implemented in | Navigator 2.0 |
9<<2
yields thirty-six, because 1001 shifted two bits to the left becomes 100100, which is thirty-six.
Implemented in | Navigator 2.0 |
They are described in Table 2.5.
Examples
Consider the following script:
<script language="JavaScript1.2">"
v1 = "Cat";
v2 = "Dog";
v3 = false;document.writeln("t && t returns " + (v1 && v2));
document.writeln("f && t returns " + (v3 && v1));
document.writeln("t && f returns " + (v1 && v3));
document.writeln("f && f returns " + (v3 && (3 == 4)));document.writeln("t || t returns " + (v1 || v2));
document.writeln("f || t returns " + (v3 || v1));
document.writeln("t || f returns " + (v1 || v3));
document.writeln("f || f returns " + (v3 || (3 == 4)));document.writeln("!t returns " + (!v1));
document.writeln("!f returns " + (!v3));</script>
This script displays the following:
t && t returns Dog
f && t returns false
t && f returns false
f && f returns false
t || t returns Cat
f || t returns Cat
t || f returns Cat
f || f returns false
!t returns false
!f returns true Short-Circuit Evaluation
As logical expressions are evaluated left to right, they are tested for possible "short-circuit" evaluation using the following rules:
"my " + "string"
returns the string "my string"
.
Implemented in | Navigator 2.0 |
The shorthand assignment operator += can also be used to concatenate strings. For example, if the variable
mystring
has the value "alpha," then the expression mystring += "bet"
evaluates to "alphabet" and assigns this value to mystring
.
Special Operators
?: (Conditional operator)
The conditional operator is the only JavaScript operator that takes three operands. This operator is frequently used as a shortcut for the if
statement.
Implemented in | Navigator 2.0 |
Syntax
condition ? expr1 : expr2
Parameters
condition |
an expression that evaluates to true or false
|
expr1, expr2 | expressions with values of any type. |
Description
If condition
is true
, the operator returns the value of expr1
; otherwise, it returns the value of expr2
. For example, to display a different message based on the value of the isMember
variable, you could use this statement:
document.write ("The fee is " + (isMember ? "$2.00" : "$10.00"))
, (Comma operator)
The comma operator is very simple. It evaluates both of its operands and returns the value of the second operand.
Implemented in | Navigator 2.0 |
Syntax
expr1, expr2
Parameters
expr1, expr2 | Any expressions |
Description
You can use the comma operator when you want to include multiple expressions in a location that requires a single expression. The most common usage of this operator is to supply multiple parameters in a for
loop.
For example, if
a
is a 2-dimensional array with 10 elements on a side, the following code uses the comma operator to increment two variables at once. The code prints the values of the diagonal elements in the array:
for (var i=0, j=10; i <= 10; i++, j--)
document.writeln("a["+i+","+j+"]= " + a[i,j]) delete
Deletes an object's property or an element at a specified index in an array.
Implemented in | Navigator 2.0 |
Syntax
delete objectName.property
delete objectName[index]
delete property Parameters
objectName | The name of an object. |
property | An existing property. |
index | An integer representing the location of an element in an array |
Description
The third form is legal only within a with
statement.
If the deletion succeeds, the delete
operator sets the property or element to undefined
. delete
always returns undefined.
new
An operator that lets you create an instance of a user-defined object type or of one of the built-in object types that has a constructor function.
Implemented in | Navigator 2.0 |
Syntax
objectName = new objectType (param1 [,param2] ...[,paramN])
Arguments
Description
Creating a user-defined object type requires two steps:
car1.color = "black"
adds a property color
to car1
, and assigns it a value of "black"
. However, this does not affect any other objects. To add the new property to all objects of the same type, you must add the property to the definition of the car
object type.
You can add a property to a previously defined object type by using the Function.prototype
property. This defines a property that is shared by all objects created with that function, rather than by just one instance of the object type. The following code adds a color
property to all objects of type car
, and then assigns a value to the color
property of the object car1
. For more information, see prototype
Car.prototype.color=null
car1.color="black"
birthday.description="The day you were born" Examples
Example 1: object type and object instance. Suppose you want to create an object type for cars. You want this type of object to be called car
, and you want it to have properties for make, model, and year. To do this, you would write the following function:
function car(make, model, year) {
Now you can create an object called
this.make = make
this.model = model
this.year = year
}mycar
as follows:
mycar = new car("Eagle", "Talon TSi", 1993)
This statement creates mycar
and assigns it the specified values for its properties. Then the value of mycar.make
is the string "Eagle"
, mycar.year
is the integer 1993
, and so on.
You can create any number of car
objects by calls to new
. For example,
kenscar = new car("Nissan", "300ZX", 1992)
Example 2: object property that is itself another object. Suppose you define an object called person
as follows:
function person(name, age, sex) {
And then instantiate two new
this.name = name
this.age = age
this.sex = sex
}person
objects as follows:
rand = new person("Rand McNally", 33, "M")
Then you can rewrite the definition of
ken = new person("Ken Jones", 39, "M")car
to include an owner property that takes a person
object, as follows:
function car(make, model, year, owner) {
To instantiate the new objects, you then use the following:
this.make = make;
this.model = model;
this.year = year;
this.owner = owner;
}car1 = new car("Eagle", "Talon TSi", 1993, rand);
Instead of passing a literal string or integer value when creating the new objects, the above statements pass the objects
car2 = new car("Nissan", "300ZX", 1992, ken)rand
and ken
as the parameters for the owners. To find out the name of the owner of car2
, you can access the following property:
car2.owner.name
this
A keyword that you can use to refer to the current object. In general, in a method this
refers to the calling object.
Implemented in | Navigator 2.0 |
Syntax
this
[.propertyName] Examples
Suppose a function called validate
validates an object's value property, given the object and the high and low values:
function validate(obj, lowval, hival) {
You could call
if ((obj.value < lowval) || (obj.value > hival))
alert("Invalid Value!")
}validate
in each form element's onChange
event handler, using this
to pass it the form element, as in the following example:
<B>Enter a number between 18 and 99:</B>
<INPUT TYPE = "text" NAME = "age" SIZE = 3
onChange="validate(this, 18, 99)"> typeof
The typeof
operator is used in either of the following ways:
1. typeof operand
The
2. typeof (operand)typeof
operator returns a string indicating the type of the unevaluated operand. operand
is the string, variable, keyword, or object for which the type is to be returned. The parentheses are optional.
Implemented in | Navigator 3.0 |
Suppose you define the following variables:
var myFun = new Function("5+2")
The
var shape="round"
var size=1
var today=new Date()typeof
operator returns the following results for these variables:
typeof myFun is object
For the keywords
typeof shape is string
typeof size is number
typeof today is object
typeof dontExist is undefinedtrue
and null
, the typeof
operator returns the following results:
typeof true is boolean
For a number or string, the
typeof null is objecttypeof
operator returns the following results:
typeof 62 is number
For property values, the
typeof 'Hello world' is stringtypeof
operator returns the type of value the property contains:
typeof document.lastModified is string
For methods and functions, the
typeof window.length is number
typeof Math.LN2 is numbertypeof
operator returns results as follows:
typeof blur is function
For predefined objects, the
typeof eval is function
typeof parseInt is function
typeof shape.split is functiontypeof
operator returns results as follows:
typeof Date is function
typeof Function is function
typeof Math is function
typeof Option is function
typeof String is function void
The void operator is used in either of the following ways:
1. javascript:void (expression)
The void operator specifies an expression to be evaluated without returning a value.
2. javascript:void expressionexpression
is a JavaScript expression to evaluate. The parentheses surrounding the expression are optional, but it is good style to use them.
Implemented in | Navigator 3.0 |
You can use the void
operator to specify an expression as a hypertext link. The expression is evaluated but is not loaded in place of the current document.
The following code creates a hypertext link that does nothing when the user clicks it. When the user clicks the link, void(0)
evaluates to 0, but that has no effect in JavaScript.
<A HREF="javascript:void(0)">Click here to do nothing</A>
The following code creates a hypertext link that submits a form when the user clicks it.
<A HREF="javascript:void(document.form.submit())">
Click here to submit</A>
Last Updated: 10/31/97 12:29:53