- Understanding Variables
- Naming Variables: Rules and Best Practices
- Understanding Literal Data Types
Understanding Literal Data Types
In programming, a variable's data type specifies what kind of data is stored within the variable. This is a crucial idea because it determines not only how two or more variables are combined (for example, mathematically), but also whether they can be combined at all. Literals are a special class of data type, and they cover those values that are fixed (even if only temporarily). For example, consider the following variable assignment statement:
todays_question = "What color is your iMac?"
Here, the text "What color is your iMac?" is a literal string value. JavaScript supports three kinds of literal data types: numeric, string, and Boolean. The next three sections discuss each type.
Working with Numeric Literals
Unlike many other programming languages, JavaScript treats all numbers the same, so you don't have to do anything special when working with the two basic numeric literals, which are integers and floating-point numbers:
Integers - These are numbers that don't have a fractional or decimal part. So you represent an integer using a sequence of one or more digits, as in these examples:
0 42 2001 -20
Floating-Point Numbers - These are numbers that do have a fractional or decimal part. Therefore, you represent a floating-point number by first writing the integer part, followed by a decimal point, following by the fractional or decimal part, as in these examples:
0.07 3.14159 -16.6666667 7.6543e+21 1.234567E-89
Exponential Notation
The last two floating-point examples require a bit more explanation. These two use exponential notation, which is an efficient way to represent really large or really small floating-point numbers. This notation uses an e (or E) followed by a plus sign (+) or a minus sign (-), followed by a number, which is called the exponent.
If the notation contains a plus sign, then you multiply the first part of the number (that is, the part before the e or E) by 10 to the power of the exponent. Here's a simple example:
9.87654e+5
The exponent is 5 and 10 to the power of 5 is 100,000. So multiplying 9.87654 by 100,000 results in the value 987,654.
If the notation contains a minus sign, instead, then you divide the rest of the number by 10 to the power of the exponent. Here's an example:
3.4567e-4
The exponent is 4 and 10 to the power of 4 is 10,000. So dividing 3.4567 by 10,000 results in the value .00034567.
Octal and Hexadecimal Integer Values
You'll likely deal with the usual decimal (base-10) number system throughout most of your JavaScript career. However, just in case you have cause to work with octal (base-8) or hexadecimal (base-16) numbers, this section shows you how JavaScript deals with them.
CAUTION
When I mentioned earlier that JavaScript treats all numeric literals the same what I really meant was that JavaScript treats the numeric literals as floating-point values. This is fine (after all, there's no practical difference between 2 and 2.0), but it does put a limit on the maximum and minimum integer values that you can work with safely. The maximum is 9007199254740992 and the minimum is -9007199254740992. If you use numbers outside of this range (unlikely, but you never know), JavaScript won't be able to maintain accuracy.
The octal number system uses only the digits 0 through 7. What in the decimal system would be 8 is actually 10 in octal. To specify an octal number in JavaScript, begin the number with a 0, as shown here:
05 010 0123
The hexadecimal number system uses the digits 0 through 9 and the letters A through F (or a through f), where these letters represent the decimal numbers 10 through 15. So, what in the decimal system would be 16 is actually 10 in hexadecimal. To specify a hexadecimal number in JavaScript, begin the number with a 0x (or 0X), as shown in the following examples:
0x23 0xFF 0X10CE
JavaScript has many built-in features for performing mathematical calculations, see Chapter 14, "Working with Numbers: The Math Object."
Working with String Literals
A string literal is a sequence of one or more letters, numbers, or punctuation marks, enclosed either in double quotation marks (") or single quotation marks ('). Here are some examples:
"Special Edition Using JavaScript" 'August 23, 1959' "" "What's the good word?"
NOTE
The string "" (or ''—two consecutive single quotation marks) is called the null string. It represents a string that doesn't contain any characters.
Using Quotation Marks Within Strings
The last example in the previous section shows you that it's okay to insert one or more instances of one of the quotation marks (such as ') inside a string that's enclosed by the other quotation mark (such as "). This comes in handy when you need to embed one string inside another, which is very common (particularly when using bits of JavaScript within HTML tags). Here's an example:
onSubmit="process_form('testing')"
However, it's illegal to insert in a string one or more instances of the same quotation mark that encloses the string, as in this example:
"This is "illegal" in JavaScript."
Understanding Escape Sequences
However, what if you must include, say, a double quotation mark within a string that's enclosed by double quotation marks. This is rare, but it is possible if you precede the double quotation mark with a backslash (\), like this:
"The double quotation mark (\") encloses this string."
The \" combination is called an escape sequence. You can combine the backslash with a number of other characters to form other escape sequences, and each one enables the browser to represent a character that, by itself, would be illegal or not representable otherwise. Table 3.1 lists the most commonly used escape sequences.
Table 3.1 Common JavaScript Escape Sequences
Escape Sequence |
Character It Represents |
\' |
Single quotation mark |
\" |
Double quotation mark |
\b |
Backspace |
\f |
Form feed |
\n |
New line |
\r |
Carriage return |
\t |
Tab |
\\ |
Backslash |
Listing 3.3 shows an example script that uses the \n escape sequence to display text on multiple lines with an alert box.
Listing 3.3 Using \n to Display Text on Multiple Lines
<script language="JavaScript" type="text/javascript"> <— alert("This is line 1.\nThis is line 2.") //—gt; </script>
Figure 3.3 shows the result.
To learn how to combine two or more string literals, see "Building String Expressions."
JavaScript has a nice collection of string manipulation features, see Chapter 15, "Manipulating Text: The String Object."
Understand Boolean Literals
Booleans are the simplest of all the literal data types because they can assume only one of two values: true or false. This might not seem particularly useful, but the capability to test whether a particular variable or condition is true or false is invaluable in JavaScript programming.
You can assign Boolean literals directly to a variable, like this:
task_completed = true
Figure 3.3 Using the \n escape sequence enables you to format text so that it displays on different lines.
Alternatively, you can work with Boolean values implicitly using expressions:
if (user_password == "")
The comparison expression current_month == "August" asks the following: Does the value of the current_month variable equal the string "August"? If it does, the expression evaluates to the Boolean value true; if it doesn't, the expression evaluated to false.
For more on these kinds of comparison expressions, particularly the strange-looking == operator, see "Building Comparison Expressions."
Boolean values are used extensively in programming structures that use testing to control script execution, see Chapter 6, "Controlling Your Code I: Testing."