Article
ASP Language Basics
Active Server Pages (ASP) is a proven, well-established technology for building dynamic Web applications, which provides the power and flexibility you need to create anything from a personal, Web based photo gallery to a complete catalogue and shopping cart system for your next eCommerce project. One unique feature of ASP is that it lets you choose your favourite scripting language, be it JavaScript or VBScript; however, VBScript is by far the most popular choice. In this article, I'll bring you up to speed on the basic syntax of the VBScript language, including variables, operators, and control structures.
This article is the second in a series teaching ASP. Specifically, the goal of this series is to teach you all you need to know to create dynamic Web sites using ASP. This article picks up right where the previous article in the series, Getting Started with ASP, left off.
Variables
Here is the listing for the first ASP script I helped you create in the previous article:
1 <html>
2 <head>
3 <title> My First ASP Page </title>
4 </head>
5 <body>
6 <%
7 ' Write out a simple HTML paragraph
8 Response.Write "<p>This is a test of ASP.</p>"
9 %>
10 </body>
11 </html>
As I admitted in that article, this is a pretty uninteresting example of an ASP script. When it comes right down to it, this script doesn't do anything a plain, old HTML page couldn't do. Oh sure, I gave a slightly more interesting example that displayed the current server time, but to be really useful a script needs to perform some form of calculation, or manipulate dynamic information to present it in some interesting way.
The language used for writing most ASP programs, and which I'll be using throughout this series, is called VBScript. Like most programming languages, VBScript lets you store data in variables. A variable may be thought of simply as a named location in memory where data may be stored. VBScript is what is known as a loosely typed language, which means that a particular variable may store any kind of information, be it a number, a piece of text, a date, or some more complicated chunk of data (as opposed to strictly typed languages where you can only store one kind of information in each variable). Before you can use a variable, though, you must declare it; that is, you must let ASP know that you want to create a variable with a particular name.
Let's look at a basic example to help solidify these concepts in your mind. Say you were writing a Web page that performed conversions between Celsius and Fahrenheit temperatures. In countries where Celsius is used, 20°C is commonly accepted as the value for room temperature. The following code creates a variable called intRoomTempC, and then assigns it a value of 20:
Dim intRoomTempC ' Create a variable
intRoomTempC = 20 ' Assign the variable a value of 20
The keyword Dim in the above is short for dimension, and is used to tell VBScript to create a variable with the name specified (in this case, intRoomTempC). Why 'dimension', you ask? I agree, it's not the most obvious choice, but basically it refers to what you're asking VBScript to do. When creating a variable, VBScript needs to assign some space in memory to store whatever value(s) will be placed in the variable, and part of that task is to figure out the size (dimension) of the space that needs to be allocated. In any case, creating a variable is as simple as typing Dim followed by the name of the variable.
The second line of the above example assigns a value to the variable that was just created; specifically, it stores the number 20 in the variable. The equals sign (=) is called the assignment operator because it is used to assign values to variables. During the course of this article, you'll meet many other operators that do other weird and wonderful things to variables and the values they store.
You should always create a variable before assigning it a value, and you'll usually want to assign the variable a value before putting it to use. Trying to assign a value to a variable that does not exist, however, will cause VBScript to automatically create a new variable with the given name. This is called implicit declaration, because a new variable is declared implicitly as a result of your trying to assign a value to a variable that doesn't exist. Since you are free to use implicit declaration for all of your variables, you may be wondering what the point is of using the Dim command to create each and every variable by hand.
The answer has to do with how easy you want it to be to find typing mistakes in your code. VBScript provides another command, Option Explicit, which causes ASP to disallow implicit declarations and instead display an error message whenever you try to assign a value to a non-existent variable. Why would you want this to happen? Consider the following example:
Dim intRoomTempC ' Create a variable
intRomTempC = 20 ' Assign the variable a value of 20
If you have a keen eye, you may have noticed that the variable name is misspelled on the second line. This is the kind of mistake that even experienced programmers make all the time. With implicit declaration enabled, the second line will create another new variable called intRomTempC and will store the value in that variable instead. Now, if the rest of your script expects that value to be stored in intRoomTempC, you're going to run into trouble. In a large script, tracing such a problem back to one little typing mistake can be very time consuming. That's where Option Explicit comes in:
Option Explicit ' Disable implicit declaration
Dim intRoomTempC ' Create a variable
intRomTempC = 20 ' Assign the variable a value of 20
This time, ASP will report the typing mistake as an illegal implicit declaration, displaying an error message to that effect with the exact line number where the typing mistake was made. For this reason, I tend to explicitly declare all my variables with Dim and specify Option Explicit on the first line of all of my ASP scripts. It might take slightly longer to type, but it saves a lot of headaches when something goes wrong.
A shortcut exists for creating several variables at once on the same line. For instance, the following line would create two variables, intRoomTempC, and intFreezingC:
Dim intRoomTempC, intFreezingC ' Two variables in one line
By now you may be wondering about my naming convention for variables. The two variables created in the above snippet both begin with int. I'm using this prefix to indicate that these variables will contain integers (whole numbers). You can feel free to name your variables whatever you like and store whatever kind of data you like in them, but I prefer to use this convention as a helpful reminder of the type of information in each variable. This practice of prefixing variable names with a clue as to their type is known as Hungarian notation, and I'll introduce additional prefixes for other data types as they arise over the course of this series.
Kevin began developing for the Web in 1995 and is a highly respected technical author. He wrote