Table of Contents

5.2 The Assignment Operator

We've already used the assignment operator frequently. It can place a value into a variable, array element, or object property. Assignment operations take the form:

identifier = expression

The identifier is the variable, array element, or object property into which we want to place our value. The expression represents the value (i.e., data) that we want to store. For example:

x = 4;                  // Assign 4 to the variable x
x = y;                  // Assign the value of y to the variable x
name = "dj duong";      // Assign a string to the variable name
products[3] = "Flash";  // Assign a string to the 4th element of products
                        // (array indices are zero-relative)
// Assign a number to the area property of square
square.area = square.width * 2;

We can also perform multiple assignment operations at once, like this:

x = y = 4;  // Set both x and y to 4

Remember that assignment operations have right-to-left associativity, so 4 is assigned first to y, and then the value of y (which is now 4) is assigned to x.

The left side of an assignment operation can never involve an operation. For example, this code is common in mathematics, but it is illegal in programming:

x + y = 10;  // ERROR!

As we'll see later, equality comparisons between two expressions are performed with the = = and != operators. For example, the following checks whether x + y is equal to 10:

var x = 1;
var y = 8;
trace(x + y =  = 10);  // Displays: false

Again, this is not quite the same as mathematics, where x + y = 10 asserts that x + y is equal to 10, rather than checking whether that is the case.

5.2.1 Combining Operations with Assignment

Assignment operations are often used to set a variable's new value, based in part on its old value. For example:

counter = counter + 10;             // Add 10 to the current value of counter
xPosition = xPosition + xVelocity;  // Add xVelocity to xPosition
score = score / 2;                  // Divide score by two

Don't confuse an equals sign, which is used to assign a value to a variable, with the algebraic equals sign. For an explanation of the difference, see Section 2.2 in Chapter 2.

ActionScript supports a shorthand version of assignment, called compound assignment,that combines operators such as +, -, and / with the assignment operator to form a single "calculate-while-assigning" operation. So, to combine addition with assignment we use +=. To combine division with assignment, we use /=. Hence, the previous examples can be written more succinctly with compound assignment operators as follows:

counter += 10;
xPosition += xVelocity;
score /= 2;

Refer to Table 5-1 for a list of the compound assignment operators.


Table of Contents