14.1. Whitespace
The
tab, space, and carriage return (i.e.,
line break) characters are used in
ActionScript just like they are in English to separate words from
each other so that they don't all runtogetherlikethis. In
programmer-speak, these characters are known as
whitespace and are used in source code to
separate tokens (the keywords, identifiers, and
expressions roughly akin to words, phrases, and sentences in
English). Here is an example of incorrect and correct whitespace
usage:
varx // Oops! No whitespace between the keyword var and the variable x.
var x // That's better...because of the whitespace the interpreter
// can now read our code.
Whitespace is optional when there is some other
delimiter (separator) that tells ActionScript
where one token ends and another begins. The following code is quite
legitimate because the operators =, +, and / separate
x, 10, 5, and y from one
another:
x=10+5/y; // Crowded, but legitimate
x = 10 + 5 / y; // Easier to read, but the same as above
Similarly, whitespace is optional when there are other characters
such as square brackets, parentheses, curly braces, commas, and
greater-than or less-than signs to act as delimiters. These are all
perfectly legal if somewhat claustrophobic:
for(var i=0;i<10;i++){trace(i);}
if(x==7){y=[1,2,3,4,5,6,7,8,9,10];}
myMeth=function(arg1,arg2,arg3){trace(arg1+arg2+arg3);};
Extra whitespace is simply a matter of style, because it is ignored
by the ActionScript interpreter. That said, there are conventions you
should follow to make your code more readable. For example, the
following is another legitimate way to rewrite the earlier assignment
expression, but it is obviously harder to read:
x =
10
+ 5
/ y;
Notice that the statement is terminated by the
semicolon not the line breaks. In nearly all
cases, line breaks are inconsequential and do not act as statement
terminators. Hence, we often use one or more line breaks (in concert
with spaces or tabs) to make complex statements easier to read:
myNestedArray = [[x, y, z],
[1, 2, 3],
["joshua davis", "yugo nakamura", "james patterson"]];
// Much nicer than:
myNestedArray = [[x, y, z], [1, 2, 3],["joshua davis","yugo nakamura",
"james patterson"]];
// And also nicer than:
myNestedArray = [[x, y, z],
[1, 2, 3],
["joshua davis","yugo nakamura","james patterson"]];
You don't need to do anything special if you want to break a
statement onto more than one line. Simply add a carriage return and
keep typing. For good advice on making your code more readable, see
Code Complete by Steve
McConnell
(Microsoft Press). There are, however, times when line breaks may be
misinterpreted as statement terminators, as we'll see in the
next section.
Note that whitespace within the quotes that
delimit a string is relevant whereas whitespace
outside the quotes is ignored. Compare these two
examples:
x = 5;
trace("The value of x is" + x); // Displays: "The value of x is5"
trace("The value of x is "+x); // Displays: "The value of x is 5"