Reserved Word (Definition)

JavaScript reserves certain words and maps computational functionality to them.

Availability:

ECMAScript edition - 2

Reserved words are keywords that the interpreter uses to determine the instructions your script is going to execute.

Generally, reserved words will be one of the following:

Here is a complete list of reserved words as defined by the ECMA 262 standard. It also includes words that are dangerous because they are properties or method names.

NameNotes
abstractJava keyword reserved
alertIdentifier name
argumentsIdentifier name
ArrayObject type
blurIdentifier name
booleanJava keyword reserved
BooleanObject type
breakKeyword
byteJava keyword reserved
calleeIdentifier name
callerIdentifier name
captureEventsIdentifier name
caseKeyword
catchReserved word
charJava keyword reserved
classReserved word
clearIntervalIdentifier name
clearTimeoutIdentifier name
closeIdentifier name
closedIdentifier name
confirmIdentifier name
constReserved word
constructorIdentifier name
continueKeyword
DateObject type
debuggerReserved word
defaultKeyword
defaultStatusIdentifier name
deleteKeyword
doKeyword
documentIdentifier name
doubleJava keyword reserved
elseKeyword
enumReserved word
escapeIdentifier name
evalIdentifier name
exportKeyword
extendsReserved word
falseBoolean literal
finalJava keyword reserved
finallyKeyword
findIdentifier name
floatJava keyword reserved
focusIdentifier name
forKeyword
framesIdentifier name
functionKeyword
FunctionObject type
gotoJava keyword reserved
historyIdentifier name
homeIdentifier name
ifKeyword
implementsJava keyword reserved
importKeyword
inKeyword
InfinityGlobal special variable
innerHeightIdentifier name
innerWidthIdentifier name
instanceofKeyword
intJava keyword reserved
interfaceJava keyword reserved
isFiniteIdentifier name
isNaNIdentifier name
javaIdentifier name
lengthIdentifier name
locationIdentifier name
locationbarIdentifier name
longJava keyword reserved
MathObject type
menubarIdentifier name
moveByIdentifier name
moveToIdentifier name
nameIdentifier name
NaNGlobal special variable
nativeJava keyword reserved
netscapeIdentifier name
newKeyword
nullNull literal
NumberObject type
ObjectObject type
openIdentifier name
openerIdentifier name
outerHeightIdentifier name
outerWidthIdentifier name
packageJava keyword reserved
PackagesIdentifier name
pageXOffsetIdentifier name
pageYOffsetIdentifier name
parentIdentifier name
parseFloatIdentifier name
parseIntIdentifier name
personalbarIdentifier name
printIdentifier name
privateJava keyword reserved
promptIdentifier name
protectedJava keyword reserved
prototypeIdentifier name
publicJava keyword reserved
RegExpIdentifier name
releaseEventsIdentifier name
resizeByIdentifier name
resizeToIdentifier name
returnKeyword
routeEventIdentifier name
scrollIdentifier name
scrollbarsIdentifier name
scrollByIdentifier name
scrollToIdentifier name
selfIdentifier name
setIntervalIdentifier name
setTimeoutIdentifier name
shortJava keyword reserved
staticJava keyword reserved
statusIdentifier name
statusbarIdentifier name
stopIdentifier name
StringObject type
superReserved word
switchKeyword
synchronizedJava keyword reserved
thisKeyword
throwKeyword
throwsJava keyword reserved
toolbarIdentifier name
topIdentifier name
toStringIdentifier name
transientJava keyword reserved
trueBoolean literal
tryKeyword
typeofKeyword
unescapeIdentifier name
unwatchIdentifier name
valueOfIdentifier name
varKeyword
voidKeyword
volatileReserved word
watchIdentifier name
whileKeyword
windowIdentifier name
withKeyword

Looking at the some of the particular keywords being reserved, it suggests that future revisions of ECMAScript will become more object oriented. Or at least even if the underlying implementation is not truly object oriented, then the visible interface to the interpreter from a script will behave very much as if it is.

The third edition of the ECMA standard does not add any new keywords but removes those that have been defined as part of the upgrade to the standard. There are still several that are classed as reserved words that have already been implemented in some browser versions. Simply avoiding parse errors does not qualify them as features to be documented as being available in the browser.

On the Netscape developer web site, there is talk of developing a version 2.0 of the JavaScript language, to change JavaScript into a truly class-based object oriented language. At that time, many of the currently reserved words will likely become functional parts of the language.

Warnings:

See also:goto, Label, Token

Cross-references:

ECMA 262 edition 2 - section - 7.4.1

ECMA 262 edition 3 - section - 7.5.1

O'Reilly JavaScript Definitive Guide - page - 31