Appendix F

JavaScript Reference

by Arman Danesh and Stephen LeHunte


CONTENTS

While Sun was developing the much-lauded Java programming language, Netscape was busy developing a lightweight scripting language called LiveScript. This was then re-defined and renamed JavaScript. With JavaScript, you can provide almost limitless interactivity in your Web pages. The scripting language allows the you to access events such as startups, document loads, exits, and user mouse clicks. You can also use JavaScript to directly control objects, such as the browser status bar, frames, and even the browser display window. JavaScript also provides interactivity between plug-in modules and Java applets.

After providing a brief overview of creating dynamic documents with JavaScript, this appendix provides a reference section organized by object with properties and methods listed by the objects they apply to. A final reference section covers independent functions in JavaScript not connected with a particular object, as well as operators in JavaScript.

Note
JavaScript is currently only fully supported by the Netscape Navigator (version 2 and above). Certain scripts may be supported by the Internet Explorer. For more information on JavaScript (including the entire script language documentation), visit the Netscape Web site (http://home.netscape.com/). The information provided here only details how to include JavaScript scripts within HTML documents, not how to author actual scripts. Such information is well beyond the scope of this appendix.

Dynamic Documents with JavaScript

As mentioned earlier, JavaScript represents a heavily stripped-down and redefined version of the Java programming language. It can be used to control almost any part of the browser (as defined in the JavaScript object model) and to respond to various user actions such as form input and page navigation. It is particularly valuable because all processing duties are written in the script (embedded into the HTML document), so the entire process defined by the script is carried out on the client side, without the need to refer back to a server.

For example, you can write a JavaScript script to verify that numeric information has been entered into a form requesting a telephone number or zip code. Without any network transmission, an HTML script with embedded JavaScript can interpret the entered text and alert the user with an appropriate message dialog.

A script is embedded in HTML within a <SCRIPT> element:


<SCRIPT>...</SCRIPT> 

The text of a script is inserted between <SCRIPT> and its end element. Attributes within the <SCRIPT> element are specified as follows:


<SCRIPT LANGUAGE="JavaScript">

  Script functions go here

</SCRIPT> 

The LANGUAGE attribute is required unless the SRC attribute is present and specifies the scripting language.

The optional SRC attribute can be used to specify a URL that loads the text of a script.


<SCRIPT LANGUAGE="language" SRC=url> 

When a JavaScript-enabled HTML document is retrieved by a browser that supports JavaScript, the script functions are evaluated and stored. The functions defined within the script are executed only upon certain events within the page (for example, when the user moves the mouse over an object, or enters text in a text box, and so on).

So that non-JavaScript capable browsers do not display the text of the script (browsers will display anything they don't recognize as HTML as text on the page), the script should be enclosed within comment elements:


<SCRIPT LANGUAGE="JavaScript">

<!-- Begin to hide script contents from old browsers.

  Script contents go here.

  End the hiding here.-->

</SCRIPT> 

JavaScript Objects and Their Properties

This section describes JavaScript objects and their properties. Objects are presented in alphabetical order for easy reference.

The anchor Object

See the anchors property of the document object.

The button Object

The button object reflects a push button from an HTML form in JavaScript.

Properties

name A string value containing the name of the button element.
value A string value containing the value of the button element.

Methods

click()
Emulates the action of clicking on the button.

Event Handlers

onClick
Specifies JavaScript code to execute when the button is clicked.

The checkbox Object

The checkbox object makes a check box from an HTML form available in JavaScript.

Properties

checked A Boolean value indicating if the check box element is checked.
defaultChecked A Boolean value indicating if the check box element was checked by default (that is, reflects the chECKED attribute).
name A string value containing the name of the check box element.
value A string value containing the value of the check box element.

Methods

click() Emulates the action of clicking on the check box.

Event Handlers

onClick

Specifies JavaScript code to execute when the check box is clicked.

The Date Object

The Date object provides mechanisms for working with dates and times in JavaScript. Instances of the object can be created with the following syntax:


newObjectName = new Date(dateInfo)

In this example, dateInfo is an optional specification of a particular date and can be one of the following, where the latter two options represent integer values:


"month day, year hours:minutes:seconds"

year, month, day

year, month, day, hours, minutes, seconds

If no dateInfo is specified, the new object will represent the current date and time.

Methods

getDate() Returns the day of the month for the current Date object as an integer from 1 to 31.
getDay() Returns the day of the week for the current Date object as an integer from 0 to 6 (where 0 is Sunday, 1 is Monday, and so on).
getHours() Returns the hour from the time in the current Date object as an integer from 0 to 23.
getMinutes() Returns the minutes from the time in the current Date object as an integer from 0 to 59.
getMonth() Returns the month for the current Date object as an integer from 0 to 11 (where 0 is January, 1 is February, and so on).
getSeconds() Returns the seconds from the time in the current Date object as an integer from 0 to 59.
getTime() Returns the time of the current Date object as an integer representing the number of milliseconds since January 1, 1970 at 00:00:00.
GetTimezoneOffset() Returns the difference between the local time and GMT as an integer representing the number of minutes.
getYear() Returns the year of the week for the current Date object as a two-digit integer representing the year less 1900.
parse(dateString) Returns the number of milliseconds between January 1, 1970 at 00:00:00 and the date specified in dateString. dateString should take the format

Day, DD Mon YYYY HH:MM:SS TZN
Mon DD, YYYY

setDate(dateValue) Sets the day of the month for the current Date object. dateValue is an integer from 1 to 31.
setHours(hoursValue) Sets the hours for the time for the current Date object. hoursValue is an integer from 0 to 23.
setMinutes(minutesValue) Sets the minutes for the time for the current Date object. minutesValue is an integer from 0 to 59.
setMonth(monthValue) Sets the month for the current Date object. monthValue is an integer from 0 to 11 (where 0 is January, 1 is February, and so on).
setSeconds(secondsValue) Sets the seconds for the time for the current Date object. secondsValue is an integer from 0 to 59.
setTime(timeValue) Sets the value for the current Date object. timeValue is an integer representing the number of milliseconds since January 1, 1970 at 00:00:00.
setYear(yearValue) Sets the year for the current Date object. yearValue is an integer greater than 1900.
toGMTString() Returns the value of the current Date object in GMT as a string using Internet conventions in the following form:

Day, DD Mon YYYY HH:MM:SS GMT

toLocaleString() Returns the value of the current Date object in the local time using local conventions.
UTC(yearValue, monthValue, dateValue, hoursValue, minutesValue, secondsValue) Returns the number of milliseconds since January 1, 1970 at 00:00:00 GMT. yearValue is an integer greater than 1900. monthValue is an integer from 0 to 11. dateValue is an integer from 1 to 31. hoursValue is an integer from 0 to 23. minutesValue and secondsValue are integers from 0 to 59. hoursValue, minutesValue, and secondsValue are optional.

The document Object

The document object reflects attributes of an HTML document in JavaScript.

Properties

alinkColor The color of active links as a string or a hexadecimal triplet.
Anchors Array of anchor objects in the order they appear in the HTML document. Use anchors.length to get the number of anchors in a document.
BgColor The color of the document's background.
Cookie A string value containing cookie values for the current document.
FgColor The color of the document's foreground.
Forms Array of form objects in the order the forms appear in the HTML file. Use forms.length to get the number of forms in a document.
LastModified String value containing the last date of modification of the document.
LinkColor The color of links as a string or a hexadecimal triplet.
Links Array of link objects in the order the hypertext links appear in the HTML document. Use links.length to get the number of links in a document.
Location A string containing the URL of the current document.
Referrer A string value containing the URL of the calling document when the user follows a link.
Title A string containing the title of the current document.
VlinkColor The color of followed links as a string or a hexadecimal triplet.

Methods

clear() Clears the document window.
close() Closes the current output stream.
open(mimeType) Opens a stream which allows write() and writeln() methods to write to the document window. mimeType is an optional string which specifies a document type supported by Navigator or a plug-in (for example, text/html, image/gif, and so on).
write() Writes text and HTML to the specified document.
writeln() Writes text and HTML to the specified document followed by a newline character.

The form Object

The form object reflects an HTML form in JavaScript. Each HTML form in a document is reflected by a distinct instance of the form object.

Properties

action A string value specifying the URL which the form data is submitted to.
elements Array of objects for each form element in the order in which they appear in the form.
encoding String containing the MIME encoding of the form as specified in the EncTYPE attribute.
method A string value containing the method of submission of form data to the server.
Target A string value containing the name of the window to which responses to form submissions are directed.

Methods

submit() Submits the form.

Event Handlers

onSubmit

Specifies JavaScript code to execute when the form is submitted. The code should return a true value to allow the form to be submitted. A false value prevents the form from being submitted.

The frame Object

The frame object reflects a frame window in JavaScript.

Properties

frames An array of objects for each frame in a window. Frames appear in the array in the order in which they appear in the HTML source code.
parent A string indicating the name of window containing the frameset.
self An alternative for the name of the current window.
top An alternative for the name of the top-most window.
Window An alternative for the name of the current window.

Methods

alert(message) Displays message in a dialog box.
Close() Closes the window.
Confirm(message) Displays message in a dialog box with OK and Cancel buttons. Returns true or false based on the button clicked by the user.
Open(url,name,features) Opens url in a window named name. If name doesn't exist, a new window is created with that name. Features is an optional string argument containing a list of features for the new window. The feature list contains any of the following name/value pairs separated by commas and without additional spaces:
  toolbar=[yes,no,1,0] Indicates if the window should have a toolbar.
  location=[yes,no,1,0] Indicates if the window should have a location field.
  directories=[yes,no,1,0] Indicates if the window should have directory buttons.
  status=[yes,no,1,0] Indicates if the window should have a status bar.
  menubar=[yes,no,1,0] Indicates if the window should have menus.
  scrollbars=[yes,no,1,0] Indicates if the window should have scroll bars.
  resizable=[yes,no,1,0] Indicates if the window should be resizable.
  width=pixels Indicates the width of the window in pixels.
  height=pixels Indicates the height of the window in pixels.
Prompt(message,response) Displays message in a dialog box with a text entry field with the default value of response. The user's response in the text entry field is returned as a string.
SetTimeout
(expression,time)
Evaluates expression after time where time is a value in milliseconds. The time out can be named with the structure:
  name = setTimeOut(expression,time)
clearTimeout(name) Cancels the time out with the name name.

The hidden Object

The hidden object reflects a hidden field from an HTML form in JavaScript.

Properties

nameA string value containing the name of the hidden element.
ValueA string value containing the value of the hidden text element.

The history Object

The history object allows a script to work with the Navigator browser's history list in JavaScript. For security and privacy reasons, the actual content of the list is not reflected into JavaScript.

Properties

length An integer representing the number of items on the history list.

Methods

back() Goes back to the previous document in the history list.
forward() Goes forward to the next document in the history list.
go(location) Goes to the document in the history list specified by location. location can be a string or integer value. If it is a string it represents all or part of a URL in the history list. If it is an integer, location represents the relative position of the document on the history list. As an integer, location can be positive or negative.

The link Object

The link object reflects a hypertext link in the body of a document.

Properties

target A string value containing the name of the window or frame specified in the TARGET attribute.

Event Handlers

onClick Specifies JavaScript code to execute when the link is clicked.
onMouseOver Specifies JavaScript code to execute when the mouse is over the hypertext link.

The location Object

The location object reflects information about the current URL.

Properties

hash A string value containing the anchor name in the URL.
host A string value containing the hostname and port number from the URL.
hostname A string value containing the domain name (or numerical IP address) from the URL.
href A string value containing the entire URL.
pathname A string value specifying the path portion of the URL.
port A string value containing the port number from the URL.
protocol A string value containing the protocol from the URL (including the colon, but not the slashes).
search A string value containing any information passed to a GET CGI-BIN call (that is, an information after the question mark).

The Math Object

The Math object provides properties and methods for advanced mathematical calculations.

Properties

E The value of Euler's constant (roughly 2.718) used as the base for natural logarithms.
LN10 The value of the natural logarithm of 10 (roughly 2.302).
LN2 The value of the natural logarithm of 2 (roughly 0.693).
PI The value of PI-used in calculating the circumference and area of circles (roughly 3.1415).
SQRT1_2 The value of the square root of one-half (roughly 0.707).
SQRT2 The value of the square root of two (roughly 1.414).

Methods

abs(number) Returns the absolute value of number. The absolute value is the value of a number with it's sign ignored so abs(4) and abs(-4) both return 4.
acos(number) Returns the arc cosine of number in radians.
asin(number) Returns the arc sine of number in radians.
atan(number) Returns the arc tangent of number in radians.
ceil(number) Returns the next integer greater than number-in other words, rounds up to the next integer.
cos(number) Returns the cosine of number where number represents an angle in radians.
exp(number) Returns the value of E to the power of number.
floor(number) Returns the next integer less than number-in other words, rounds down to the nearest integer.
log(number) Returns the natural logarithm of number.
max(number1,number2) Returns the greater of number1 and number2.
min(number1,number2) Returns the smaller of number1 and number2.
pow(number1,number2) Returns the value of number1 to the power of number2.
random() Returns a random number between zero and one.
round(number) Returns the closest integer to number-in other words rounds to the closest integer.
sin(number) Returns the sine of number where number represents an angle in radians.
sqrt(number) Returns the square root of number.
tan(number) Returns the tangent of number where number represents an angle in radians.

The navigator Object

The navigator object reflects information about the version of Navigator being used.

Properties

appCodeName A string value containing the code name of the client (for example, "Mozilla" for Netscape Navigator).
appName A string value containing the name of the client (for example, "Netscape" for Netscape Navigator).
appVersion A string value containing the version information for the client in the form versionNumber (platform; country)
userAgent A string containing the complete value of the user-agent header sent in the HTTP request. This contains all the information in appCodeName and appVersion:
Mozilla/2.0b6 (Win32; I)

The password Object

The password object reflects a password text field from an HTML form in JavaScript.

Properties

defaultValue A string value containing the default value of the password element (that is, the value of the VALUE attribute).
name A string value containing the name of the password element.
value A string value containing the value of the password element.

Methods

focus() Emulates the action of focusing in the password field.
blur() Emulates the action of removing focus from the password field.
select() Emulates the action of selecting the text in the password field.

The radio Object

The radio object reflects a set of radio buttons from an HTML form in JavaScript. To access individual radio buttons, use numeric indexes starting at zero. For instance, individual buttons in a set of radio buttons named testRadio could be referenced by testRadio[0], testRadio[1], and so on.

Properties

checked A Boolean value indicating if a specific button is checked. Can be used to select or deselect a button.
defaultChecked A Boolean value indicating if a specific button was checked by default (that is, reflects the chECKED attribute).
length An integer value indicating the number of radio buttons in the set.
name A string value containing the name of the set of radio buttons.
value A string value containing the value of a specific radio button in a set (that is, reflects the VALUE attribute).

Methods

click() Emulates the action of clicking on a radio button.

Event Handlers

onClick

Specifies JavaScript code to execute when a radio button is clicked.

The reset Object

The reset object reflects a reset button from an HTML form in JavaScript.

Properties

name A string value containing the name of the reset element.
value A string value containing the value of the reset element.

Methods

click() Emulates the action of clicking on the reset button.

Event Handlers

onClick

Specifies JavaScript code to execute when the reset button is clicked.

The select Object

The select object reflects a selection list from an HTML form in JavaScript.

Properties

length An integer value containing the number of options in the selection list.
name A string value containing the name of the selection list.
options An array reflecting each of the options in the selection list in the order they appear. The options property has its own properties:
defaultSelected A Boolean value indicating if an option was selected by default (that is, reflects the SELECTED attribute).
index An integer value reflecting the index of an option.
length An integer value reflecting the number of options in the selection list.
name A string value containing the name of the selection list.
options A string value containing the full HTML code for the selection list.
selected A Boolean value indicating if the option is selected. Can be used to select or deselect an option.
selectedIndex An integer value containing the index of the currently selected option.
text A string value containing the text displayed in the selection list for a particular option.
Value A string value indicating the value for the specified option (that is, reflects the VALUE attribute).
selectedIndex Reflects the index of the currently selected option in the selection list.

Event Handlers

onBlur Specifies JavaScript code to execute when the selection list loses focus.
onFocus Specifies JavaScript code to execute when focus is given to the selection list.
onChange Specifies JavaScript code to execute when the selected option in the list changes.

The string Object

The string object provides properties and methods for working with string literals and variables.

Properties

length An integer value containing the length of the string expressed as the number of characters in the string.

Methods

anchor(name) Returns a string containing the value of the string object surrounded by an A container tag with the NAME attribute set to name.
big() Returns a string containing the value of the string object surrounded by a BIG container tag.
blink() Returns a string containing the value of the string object surrounded by a BLINK container tag.
bold() Returns a string containing the value of the string object surrounded by a B container tag.
charAt(index) Returns the character at the location specified by index.
fixed() Returns a string containing the value of the string object surrounded by a FIXED container tag.
fontColor(color) Returns a string containing the value of the string object surrounded by a FONT container tag with the COLOR attribute set to color where color is a color name or an RGB triplet.
fontSize(size) Returns a string containing the value of the string object surrounded by a FONTSIZE container tag with the size set to size.
indexOf (findString,
startingIndex)
Returns the index of the first occurrence of findString, starting the search at startingIndex where startingIndex is optional-if it is not provided, the search starts at the start of the string.
italics() Returns a string containing the value of the string object surrounded by an I container tag.
LastIndexOf (findString,
startingIndex)
Returns the index of the last occurrence of findString. This is done by searching backwards from startingIndex, which is optional and assumed to be the last character in the string if no value is provided.
link(href) Returns a string containing the value of the string object surrounded by an A container tag with the HREF attribute set to href.
small() Returns a string containing the value of the string object surrounded by a SMALL container tag.
strike() Returns a string containing the value of the string object surrounded by a STRIKE container tag.
sub() Returns a string containing the value of the string object surrounded by a SUB container tag.
Substring (firstIndex, lastIndex) Returns a string equivalent to the substring starting at firstIndex and ending at the character before lastIndex. If is greater than lastIndex, the string starts at lastIndex and ends at the character before firstIndex.
sup() Returns a string containing the value of the string object surrounded by a SUP container tag.
toLowerCase() Returns a string containing the value of the string object with all characters converted to lowercase.
toUpperCase() Returns a string containing the value of the string object with all characters converted to uppercase.

The submit Object

The submit object reflects a submit button from an HTML form in JavaScript.

Properties

name
A string value containing the name of the submit button element.
value
A string value containing the value of the submit button element.

Methods

click() Emulates the action of clicking on the submit button.

Event Handlers

onClick Specifies JavaScript code to execute when the submit button is clicked.

The text Object

The text object reflects a text field from an HTML form in JavaScript.

Properties

defaultValue A string value containing the default value of the text element (that is, the value of the VALUE attribute).
name A string value containing the name of the text element.
value A string value containing the value of the text element.

Methods

focus() Emulates the action of focusing in the text field.
blur() Emulates the action of removing focus from the text field.
select() Emulates the action of selecting the text in the text field.

Event Handlers

onBlur Specifies JavaScript code to execute when focus is removed from the field.
onChange Specifies JavaScript code to execute when the content of the field is changed.
onFocus Specifies JavaScript code to execute when focus is given to the field.
onSelect Specifies JavaScript code to execute when the user selects some or all of the text in the field.

The textarea Object

The textarea object reflects a multi-line text field from an HTML form in JavaScript.

Properties

defaultValue A string value containing the default value of the textarea element (that is, the value of the VALUE attribute).
name A string value containing the name of the textarea element.
value A string value containing the value of the textarea element.

Methods

focus() Emulates the action of focusing in the textarea field.
blur() Emulates the action of removing focus from the textarea field.
select() Emulates the action of selecting the text in the textarea field.

Event Handlers

onBlur Specifies JavaScript code to execute when focus is removed from the field.
onChange Specifies JavaScript code to execute when the content of the field is changed.
onFocus Specifies JavaScript code to execute when focus is given to the field.
onSelect Specifies JavaScript code to execute when the user selects some or all of the text in the field.

The window Object

The window object is the top-level object for each window or frame and is the parent object for the document, location, and history objects.

Properties

defaultStatus A string value containing the default value displayed in the status bar.
frames An array of objects for each frame in a window. Frames appear in the array in the order in which they appear in the HTML source code.
length An integer value indicating the number of frames in a parent window.
name A string value containing the name of the window or frame.
parent A string indicating the name of the window containing the frameset.
self An alternative for the name of the current window.
status Used to display a message in the status bar-this is done by assigning values to this property.
top An alternative for the name of the top-most window.
window An alternative for the name of the current window.

Methods

alert(message) Displays message in a dialog box.
close() Closes the window.
confirm(message) Displays message in a dialog box with OK and Cancel buttons. Returns true or false based on the button clicked by the user.
open(url,name,features) Opens url in a window named name. If name doesn't exist, a new window is created with that name. features is an optional string argument containing a list of features for the new window. The feature list contains any of the following name/value pairs separated by commas and without additional spaces:
 toolbar=[yes,no,1,0] Indicates if the window should have a toolbar
 location=[yes,no,1,0] Indicates if the window should have a location field
 directories=[yes,no,1,0] Indicates if the window should have directory buttons
 status=[yes,no,1,0] Indicates if the window should have a status bar
 menubar=[yes,no,1,0] Indicates if the window should have menus
 scrollbars=[yes,no,1,0] Indicates if the window should have scroll bars
 resizable=[yes,no,1,0] Indicates if the window should be resizable
 width=pixels Indicates the width of the window in pixels
 height=pixels Indicates the height of the window in pixels
prompt(message,response) Displays message in a dialog box with a text entry field with the default value of response. The user's response in the text entry field is returned as a string.
SetTimeout(expression,time) Evaluates expression after time where time is a value in milliseconds. The time out can be named with the structure.
  name = setTimeOut(expression,time)
clearTimeout(name) Cancels the time out with the name name.

Event Handlers

onLoad Specifies JavaScript code to execute when the window or frame finishes loading.
onUnload Specifies JavaScript code to execute when the document in the window or frame is exited.

Independent Functions, Operators, Variables, and Literals

This section describes JavaScript's independent functions, operators, variables, and literals.

Independent Functions

escape(character) Returns a string containing the ASCII encoding of character in the form %xx where xx is the numeric encoding of the character.
eval(expression) Returns the result of evaluating expression where expression is an arithmetic expression.
isNaN(value) Evaluates value to see if it is NaN. Returns a Boolean value. This function is only available on UNIX platforms where certain functions return NaN if their argument is not a number.
parseFloat(string) Converts string to a floating-point number and returns the value. It continues to convert until it hits a non-numeric character and then returns the result. If the first character cannot be converted to a number, the function returns "NaN" (zero on Windows platforms).
parseInt
(string,base)
Converts string to an integer of base base and returns the value. It continues to convert until it hits a non-numeric character and then returns the result. If the first character cannot be converted to a number, the function returns "NaN" (zero on Windows platforms).
unescape(string) Returns a character based on the ASCII encoding contained in string. The ASCII encoding should take the form "%integer" or "hexadecimalValue".

Operators

JavaScript provides the following categories of operators:

After each type of operator is discussed, operator precedence in JavaScript is presented.

Assignment Operators

=
Assigns value of right operand to the left operand
+=
Adds the left and right operands and assigns the result to the left operand
-=
Subtracts the right operand from the left operand and assigns the result to the left operand
*=
Multiplies the two operands and assigns the result to the left operand
/=
Divides the left operand by the right operand and assigns the value to the left operand
%=
Divides the left operand by the right operand and assigns the remainder to the left operand

Arithmetic Operators

+
Adds the left and right operands
-
Subtracts the right operand from the left operand
*
Multiplies the two operands
/
Divides the left operand by the right operand
%
Divides the left operand by the right operand and evaluates to the remainder
++
Increments the operand by one (can be used before or after the operand)
--
Decreases the operand by one (can be used before or after the operand)
-
Changes the sign of the operand

Bitwise Operators

Bitwise operators deal with their operands as binary numbers but return JavaScript numerical value.

AND (or &)
Converts operands to integers with 32 bits, pairs the corresponding bits, and returns one for each pair of ones. Returns zero for any other combination.
OR (or |)
Converts operands to integers with 32 bits, pairs the corresponding bits, and returns one for each pair where one of the two bits is one. Returns zero if both bits are zero.
XOR (or ^)
Converts operands to integers with 32 bits, pairs the corresponding bits, and returns one for each pair where only one bit is one. Returns zero for any other combination.
<<
Converts the left operand to an integer with 32 bits and shifts bits to the left the number of bits indicated by the right operand-bits shifted off to the left are discarded and zeros are shifted in from the right.
>>>
Converts the left operand to an integer with 32 bits and shifts bits to the right the number of bits indicated by the right operand-bits shifted off to the right are discarded and zeros are shifted in from the left.
>>
Converts the left operand to an integer with 32 bits and shifts bits to the right the number of bits indicated by the right operand-bits shifted off to the right are discarded and copies of the leftmost bit are shifted in from the left.

Logical Operators

&&
Logical "and"-returns true when both operands are true; otherwise it returns false.
||
Logical "or"-returns true if either operand is true. It only returns false when both operands are false.
!
Logical "not"-returns true if the operand is false and false if the operand is true. This is a unary operator and precedes the operand.

Comparison Operators

==
Returns true if the operands are equal
!=
Returns true if the operands are not equal
>
Returns true if the left operand is greater than the right operand
<
Returns true if the left operand is less than the right operand
>=
Returns true if the left operand is greater than or equal to the right operand
<=
Returns true if the left operand is less than or equal to the right operand

Conditional Operators

Conditional expressions take one form:


(condition) ? val1 : val2

If condition is true, the expression evaluates to val1; otherwise it evaluates to val2.

String Operators

JavaScript provides two string-concatenation operators:

+
This operator evaluates to a string combining the left and right operands.
+=
This operator is a shortcut for combining two strings.

Operator Precendence

JavaScript applies the rules of operator precedence as follows (from lowest to highest precedence):

Comma,
Assignment operators= += -= *= /= %=
Conditional ? :
Logical or ||
Logical and &&
Bitwise or |
Bitwise xor ^
Bitwise and &
Equality == !=
Relational < <= > >=
Shift << >> >>>
Addition/subtraction + -
Multiply/divide/modulus* / %
Negation/increment ! - ++ -
Call, member () []