Like PHP, JavaScript is a very loosely typed language; the type of a variable is determined only when a value is assigned and can change as the variable appears in different contexts. Usually, you don’t have to worry about the type; JavaScript figures out what you want and just does it.
Take a look at Example 13-4, in which:
The variable n
is assigned
the string value '838102050'
, the
next line prints out its value, and the typeof
operator is used to look up the
type.
n
is given the value returned
when the numbers 12345 and 67890 are multiplied together. This value
is also 838102050
, but it is a
number, not a string. The type of the variable is then looked up and
displayed.
Some text is appended to the number n
and the result is displayed.
<script> n = '838102050' // Set 'n' to a string document.write('n = ' + n + ', and is a ' + typeof n + '<br />') n = 12345 * 67890; // Set 'n' to a number document.write('n = ' + n + ', and is a ' + typeof n + '<br />') n += ' plus some text' // Change 'n' from a number to a string document.write('n = ' + n + ', and is a ' + typeof n + '<br />') </script>
The output from this script looks like:
n = 838102050, and is a string n = 838102050, and is a number n = 838102050 plus some text, and is a string
If there is ever any doubt about the type of a variable, or you need to ensure a variable has a particular type, you can force it to that type using statements such as the following (which respectively turn a string into a number and a number into a string):
n = "123" n *= 1 // Convert 'n' into a number n = 123 n += "" // Convert 'n' into a string
Or, of course, you can always look up a variable’s type using the
typeof
operator.