Reserved Words

Some reserved words are used by the ActionScript interpreter to denote specific built-in language features such as statements and operators. They are reserved for use by the interpreter, and we must avoid using them as identifiers in our code. Using a reserved word for a purpose other than its reserved internal purpose causes an error in most cases. The reserved words of ActionScript are listed in Table 14-1.

Table 14-1. ActionScript's Reserved Words

add* for lt* tellTarget*
and* function ne* this
break ge* new typeof
continue gt* not* var
delete if on void
do ifFrameLoaded* onClipEvent while
else in or* with
eq* le* return

* Flash 4 reserved words deprecated in Flash 5.

You should also try to avoid using the keywords listed in Table 14-2. They are not part of ActionScript in Flash 5 but may become a part of the language in the future because they are slated for potential use by ECMA-262.

Table 14-2. Potential Future Reserved Words

abstract extends private
boolean final protected
byte finally public
case float short
catch goto static
char implements super
class import switch
const instanceof synchronized
debugger int throws
default interface transient
double long try
enum native volatile
export package

In addition to the formally defined keywords, you should also avoid using the names of built-in properties, methods, and objects as identifiers in your code. Doing so overrides the default behavior of the property, method, or object in question. For example:

Date = new Object( ); // Oops! We just disabled the Date( ) constructor

Now we can no longer create Date objects:

var now = new Date( ); // Sets now to undefined trace(now); // Displays the empty string, not the current time and date