Most
of the datatypes we’ve explored
so far have been used for storing and manipulating information. The
undefined
datatype has a more narrow purpose: it
is used to check whether a variable exists or whether a variable has
yet been assigned a value. The undefined
datatype has only one legal value, the primitive value
undefined
.
When we first define a variable, it is assigned the value
undefined
by default:
var velocity;
To the interpreter, the preceding statement reads:
var velocity = undefined;
To check whether a variable has a value, we can compare the variable
to undefined
, as in:
if (myVariable != undefined) {
// myVariable
has a value, so proceed as desired...
}
Note that an undefined
value is converted to the
empty string when used as a string. For example, if
firstName
is undefined
, the
following trace( )
statement will display
""
(the empty string):
var firstName; trace(firstName); // Displays nothing (the empty string)
This same code in JavaScript would display the string
“undefined” instead of the empty string. ActionScript
converts undefined
to ""
for
the sake of backward compatibility.
Because there was no undefined type in Flash 4 ActionScript, many Flash 4 programs used the empty string to check whether a variable had a useful value. Code like this was common:
if (myVar eq "") {
// Don't do anything yet: myVar
is undefined
}
If Flash 5 converted undefined
to anything other
than ""
in a string context, old code like that
would break in the Flash 5 player.
Note that ActionScript returns undefined
both for
variables that do not exist and variables that have been declared but
have no value. This is also a departure from JavaScript, where
references to variables that do not exist cause an error.
Get ActionScript: The Definitive Guide 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.