Understanding the ActionScript Language > About variables > Typing a variable |  |

Typing a variable

In Flash, you do not need to explicitly define a variable as holding either a number, a string, or other data type. Flash determines the data type of a variable when the variable is assigned:

    x = 3;

In the expression `x = 3`, Flash evaluates the element on the right side of the operator and determines that it is of type number. A later assignment may change the type of `x`; for example, `x = "hello"` changes the type of `x` to a string. A variable that hasn't been assigned a value has a type of `undefined`.

ActionScript converts data types automatically when an expression requires it. For example, when you pass a value to the `trace` action, `trace` automatically converts the value to a string and sends it to the Output window. In expressions with operators, ActionScript converts data types as needed; for example, when used with a string, the `+` operator expects the other operand to be a string:

    "Next in line, number " + 7

ActionScript converts the number 7 to the string `"7"` and adds it to the end of the first string, resulting in the following string:

    "Next in line, number 7"

When you debug scripts, it's often useful to determine the data type of an expression or variable to understand why it is behaving a certain way. You can do this with the `typeof` operator, as in this example:

    trace(typeof(variableName));

To convert a string to a numerical value, use the `Number` function. To convert a numerical value to a string, use the `String` function. For detailed information, see Number (function) and String (function) in the ActionScript Dictionary.