In any programming language, a piece of data is used to quantify a concept.
Variables in JScript
Copy Code | |
---|---|
How old am I? |
In JScript, a variable is the name you give that concept; it represents the value at a given instant. When you use the variable, you really mean the data it represents. Here is an example:
Copy Code | |
---|---|
NumberOfDaysLeft = EndDate – TodaysDate; |
In a mechanical sense, you use variables to store, retrieve, and manipulate all the different values that appear in your scripts. Always create a meaningful variable name; that makes it easy for humans to understand what your scripts do.
Declaring Variables
The first time a variable appears in your script is its declaration. This first mention of the variable sets it up in memory so you can refer to it later on in your script. Always declare variables before using them. You do this using the var keyword.
Copy Code | |
---|---|
var count; // a single declaration. var count, amount, level; // multiple declarations with a single var keyword. var count = 0, amount = 100; // variable declaration and initialization in one statement. |
If you do not initialize your variable in the var statement, it automatically takes on the JScript value undefined. Although it is unsafe to do so, it is legal JScript syntax to omit the var keyword from your declaration statement. When you do, the JScript interpreter gives the variable global scope visibility. When you declare a variable at the procedure level though, you do not want it to be visible at the global scope; in this case, you must use the var keyword in your variable declaration.
Naming Variables
A variable name is an identifier. In JScript, identifiers are used to:
-
name variables,
-
name functions,
-
provide labels for loops.
JScript is a case-sensitive language. This means a variable name such as myCounter is different than the variable name MYCounter. Variable names can be of any length. The rules for creating legal variable names are as follows:
-
The first character must be an ASCII letter (either uppercase or lowercase), or an underscore (_) character. Note that a number cannot be used as the first character.
-
Subsequent characters must be letters, numbers, or underscores.
-
The variable name must not be a reserved word.
Here are some examples of valid variable names:
Copy Code | |
---|---|
_pagecount Part9 Number_Items |
Here are some examples of invalid variable names:
Copy Code | |
---|---|
99Balloons // Cannot begin with a number. Smith&Wesson // The ampersand (&) character is not a valid character for variable names. |
When you want to declare a variable and initialize it, but do not want to give it any particular value, assign it the JScript value null. Here is an example.
Copy Code | |
---|---|
var bestAge = null; var muchTooOld = 3 * bestAge; // muchTooOld has the value 0. |
If you declare a variable without assigning a value to it, it exists, but has the JScript value undefined. Here is an example.
Copy Code | |
---|---|
var currentCount; var finalCount = 1 * currentCount; // finalCount has the value NaN since currentCount is undefined. |
Note that the main difference between null and undefined in JScript is that null behaves like the number 0, while undefined behaves like the special value NaN (Not a Number). A null value and an undefined value will always compare to be equal.
You can declare a variable without using the var keyword in the declaration, and assign a value to it. This is an implicit declaration.
Copy Code | |
---|---|
noStringAtAll = ""; // The variable noStringAtAll is declared implicitly. |
You cannot use a variable that has never been declared.
Copy Code | |
---|---|
var volume = length * width; // Error - length and width do not yet exist. |
Coercion
The JScript interpreter can only evaluate expressions in which the data types of the operands are the same. Without coercion, an expression that attempts to perform an operation on two different data types (a number and a string for example) would produce an erroneous result. But that is not the case with JScript.
JScript is a loosely typed language. This means its variables have no predetermined type (as opposed to strongly typed languages like C++). Instead, JScript variables have a type that corresponds to the type of value they contain. A benefit of this behavior is that it provides you with the flexibility to treat a value as if it were of another type.
In JScript, you can perform operations on values of differing types without fear that the JScript interpreter will raise an exception. Instead, the JScript interpreter automatically changes (coerces) one of the data types to that of the other, then performs the operation. For example:
Operation | Result |
---|---|
Add a number and a string |
The number is coerced into a string. |
Add a Boolean and a string |
The Boolean is coerced into a string. |
Add a number and a Boolean |
The Boolean is coerced into a number. |
Consider the following example.
Copy Code | |
---|---|
var x = 2000; // A number. var y = "Hello"; // A string. x = x + y; // the number is coerced into a string. document.write(x); // Outputs 2000Hello. |
To explicitly convert a string to an integer, use the parseInt Method. To explicitly convert a string to a number, use the parseFloat Method. Notice that strings are automatically converted to equivalent numbers for comparison purposes, but are left as strings for addition (concatenation).