Table of Contents

15.1 Whitespace

The tab, space, and carriage return (i.e., line break) characters are used in ActionScript just as they are used 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 var keyword and the variable x.
var x;  // That's better...because of the whitespace, the interpreter
        // can now understand 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 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). However, there are 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"

Table of Contents