JavaScript programs are written using the Unicode character set. Unicode is a superset of ASCII and Latin-1 and supports virtually every written language currently used on the planet.
JavaScript is a case-sensitive language. This means that language keywords,
variables, function names, and other identifiers must always be typed with a
consistent capitalization of letters. The while
keyword, for example, must be typed âwhile,â
not âWhileâ or âWHILE.â Similarly, online
, Online
,
OnLine
, and ONLINE
are four distinct variable names.
JavaScript supports two styles of comments. Any text between
a //
and the end of a line
is treated as a comment and is ignored by JavaScript. Any text between the
characters /*
and */
is also treated as a comment; these comments
may span multiple lines but may not be nested. The following lines of code
are all legal JavaScript comments:
// This is a single-line comment. /* This is also a comment */ // And here is another. /* * This is yet another comment. * It has multiple lines. */
An identifier is simply a name. In
JavaScript, identifiers are used to name variables and functions and to
provide labels for certain loops in JavaScript code. A JavaScript
identifier must begin with a letter, an underscore (_
), or a dollar sign
($
). Subsequent characters
can be letters, digits, underscores, or dollar signs.
JavaScript reserves a number of identifiers as the keywords of the language itself. You cannot use these words as identifiers in your programs:
break delete function return typeof case do if switch var catch else in this void continue false instanceof throw while debugger finally new true with default for null try
JavaScript also reserves certain keywords that are not currently used by the language but which might be used in future versions. ECMAScript 5 reserves the following words:
class const enum export extends import super
In addition, the following words, which are legal in ordinary JavaScript code, are reserved in strict mode:
implements let private public yield interface package protected static
Strict mode also imposes restrictions on the use of the following identifiers. They are not fully reserved, but they are not allowed as variable, function, or parameter names:
arguments eval
ECMAScript 3 reserved all the keywords of the Java language, and although this has been relaxed in ECMAScript 5, you should still avoid all of these identifiers if you plan to run your code under an ECMAScript 3 implementation of JavaScript:
abstract double goto native static boolean enum implements package super byte export import private synchronized char extends int protected throws class final interface public transient const float long short volatile
Like many programming languages, JavaScript uses the
semicolon (;
) to separate
statements (see Chapter 4) from each other. This is
important to make the meaning of your code clear: without a separator, the
end of one statement might appear to be the beginning of the next, or vice
versa. In JavaScript, you can usually omit the semicolon between two
statements if those statements are written on separate lines. (You can
also omit a semicolon at the end of a program or if the next token in the
program is a closing curly brace }
.)
Many JavaScript programmers (and the code in this book) use semicolons to
explicitly mark the ends of statements, even where they are not required.
Another style is to omit semicolons
whenever possible, using them only in the few situations that require
them. Whichever style you choose, there are a few details you should
understand about optional semicolons in JavaScript.
Consider the following code. Since the two statements appear on separate lines, the first semicolon could be omitted:
a = 3; b = 4;
Written as follows, however, the first semicolon is required:
a = 3; b = 4;
Note that JavaScript does not treat every line break as a semicolon: it usually treats line breaks as
semicolons only if it canât parse the code without the semicolons. More
formally, JavaScript interprets a line break as a semicolon if it appears
after the return
, break
, or continue
keywords, or
before the ++
or --
operators, or if the next nonspace character
cannot be interpreted as a continuation of the current statement.
These statement termination rules lead to some surprising cases. This code looks like two separate statements separated with a newline:
var y = x + f (a+b).toString()
But the parentheses on the second line of code can be interpreted as
a function invocation of f
from the first line, and JavaScript interprets the code like this:
var y = x + f(a+b).toString();
Get JavaScript Pocket Reference, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.