HTML網頁基礎語言

Download Report

Transcript HTML網頁基礎語言

第3章 VBScript語法建立ASP程
式





3-1
3-2
3-3
3-4
3-5
ASP程式的基本架構
ASP程式的撰寫風格
VBScript變數的資料型態
VBScript陣列資料型態
VBScript的運算子
3-1 ASP程式的基本架構

3-1-1 什麼是VBScript

3-1-2 建立VBScript語法的ASP程式

3-1-3 儲存成ASP程式

3-1-4 ASP程式的執行過程

3-1-5 ASP程式的標籤寫法
3-1-1 什麼是VBScript


VBScript屬於Visual Basic語言家族的成員,全
名為Microsoft Visual Basic Scripting Edition,
簡稱VBScript,VBScript屬於一種完全免費的解
譯程式語言,一種客戶端的網頁設計語言,能夠
讓網頁設計者開發互動多媒體的網頁內容。
VBScript程式碼是直接插在HTML標籤,使用
<script>標籤標示出來,如下所示:
<script language="VBScript">
<!-………….
-->
</script>
3-1-2 建立VBScript語法的ASP程式

ASP程式碼的架構和客戶端VBScript在程式碼的
寫法上並沒有什麼不同,程式碼一樣都是直接內
嵌在HTML標籤,只是使用不同的符號區分那一
部分屬於ASP程式碼,哪一部分屬於客戶端的
VBScript程式碼,如下表所示:
程式種類
客戶端的 VBScript
伺服端的 ASP
標示方式
<script language="VBScript">
<!-………….
-->
</script>
<%………%>
3-1-3 儲存成ASP程式


ASP程式檔案也可以擁有HTML標籤,不過其副
檔名為.asp,
記事本在儲存檔案時,預設儲存的副檔名為.txt,
請在存檔類型欄選所有的檔案(*.*),檔案
名稱欄輸入檔案的全名即含副檔名.asp,按存
檔鈕存成ASP程式。
3-1-4 ASP程式的執行過程

ASP程式為伺服端的技術需要將程式檔
案公佈到Web伺服器後才能執行ASP程
式,其執行的過程,如下圖所示:
3-1-5 ASP程式的標籤寫法

ASP程式碼允許散佈在HTML標籤或是任
何的位置,如果不使用符號<% … %>,
我們也可以使用<script>標籤,如下所
示:
<script language="VBScript"
runat="Server">
…………
</script>
3-2 ASP程式的撰寫風格


3-2-1 使用註解文字
3-2-2 太長的程式碼
3-2-1 使用註解文字

程式註解是程式設計上很重要的部分,因為良好的
註解不但能夠輕易了解程式的目的,並且在維護上
也可以提供更多的資訊,VBScript的程式註解是以
「'」符號或Rem指令開始的列,或程式列後符號後
的文字內容,如下所示:
' 註解文字
Rem 註解文字
Response.Write("<h2>大家好!</h2>") ' 使用Response物件
3-2-2 太長的程式碼

如果程式碼的長度太長,基於程式編排的
需要可以將它分成兩列,請在第一列程式
碼的最後加上「_」符號,如下所示:
Response.Write("<h2>大家好!這是比較長的程式碼, " & _
"所以需要分為兩列.</h2>")
3-3 VBScript變數的資料型態

3-3-1 變數型態

3-3-2 變數的宣告

3-3-3 指定敘述

3-3-4 Option Explicit的使用

3-3-5 常數的宣告與使用
3-3-1 變數型態
型態
Empty
Null
Boolean
Byte
Integer
Currency
Long
Single
Double
Date/Time
String
Object
Error
說明
未啟始值
無效資料
布林值
正整數
整數
貨幣
範圍
數字為 0,字串為空字串""
N/A
True 或 False
0 到 255 間的正整數
-32,768 到 32,768 間的整數
-922,337,203,685,477.5808 到
922,337,203,685,477.5807
長整數
-2,147,483,648 到 2,147,483,647 間的整數
單精度的浮點數 負數範圍為-3.402823E38 到-1.401298E-45,正數範
圍 1.401298E-45 到 3.402823E38
雙精度的浮點數 負數範圍為-1.79769313486232E308 到4.94065645841247E-324,正數範圍
4.94065645841247E-324 到 1.79769313486232E308
日期/時間
西元 100 年 1 月 1 日到西元 9999 年 12 月 31 日
字串
20 億字元長度
N/A
物件
N/A
錯誤代碼
3-3-2 變數的宣告-1

變數在程式碼扮演的角色是用來儲存程式執行
中的一些暫存資料,VBScript變數的命名原則,
如下所示:
• 不能為VBScript語法的保留字,例如:Dim、For、
Next等
• 變數名稱的長度不能超過255字元,而且並不區分
英文字母的大小寫,例如:Count、count、
cOunt都是相同的變數。
• 變數名稱間不能使用句點「.」,因為它保留給物件
使用。
• 在變數宣告的有效範圍內需唯一,有效範圍請參閱
第五章的程序和函數。
3-3-2 變數的宣告-2



在VBScript程式碼使用Dim指令宣告所需的變
數,其指令如下所示:
Dim strName
上述程式碼宣告一個字串變數,如果需要同時
宣告數個變數,請使用「,」分隔,如下所示:
Dim strName, intBalance
上述程式碼在同一個Dim指令宣告兩個變數,
一為整數,一為字串。
3-3-3 指定敘述

在宣告變數後需要指定變數值,這就是指定敘述
「=」等號,VBScript的變數必須在指定敘述後
才會同時指定變數型態,在指定變數值時同時也
指定變數型態,如下所示:
' 指定變數值
strName = "陳會安"
intBalance = 1000
3-3-4 Option Explicit的使用

如果希望程式碼的每一個變數都需要事先
宣告,只需在程式的最前面使用下列指令,
就可以強迫在使用變數前都需要宣告變數,
如下所示:
Option Explicit
3-3-5 常數的宣告與使用

VBScript本身已經擁有一些內建的常數,
我們也可以自行建立所需的常數,常數在
宣告同時需要指定其值,如下所示:
Const PI = 3.1415926
3-4 VBScript陣列資料型態




3-4-1
3-4-2
3-4-3
3-4-4
什麼是陣列變數
一維陣列
多維陣列
動態陣列
3-4-1 什麼是陣列變數

陣列屬於程式語言的一種資料結構,它是一種
順序性的資料結構,在公寓大樓的信箱,我們
可以將每個單獨的信箱視為一個變數,而整排
的信箱就是陣列變數,門牌號碼就是取得變數
值所需的索引值。
信箱 1
信箱 2
信箱 3
信箱 4
信箱 5
3-4-2 一維陣列

一維陣列就是一排信箱,VBScript陣列通常為固
定大小的陣列,在宣告時需要決定陣列的大小,
宣告陣列的語法,如下所示:
Dim array_name(size-1)
Dim name(4)
name(0) = "陳會安"
name(1) = "江小魚"
name(2) = "張無忌"
name(3) = "楊過"
name(4) = "小龍女"
3-4-3 多維陣列

多維陣列不只一個索引,例如:二維陣列,
其宣告如下所示:
Dim home(2,1)
home(0,0)
home(1,0)
home(2,0)
home(0,1)
home(1,1)
home(2,1)
3-4-4 動態陣列 - 1

動態陣列指的是陣列大小會在程式執行時變
更大小,或是再行指定,如下所示:
ReDim name()

宣告的動態陣列指定大小為3,其宣告如下
所示:
ReDim name(2)

放大陣列元素為5,並且使用Preserve指令
保留原來三個陣列元素的內容。
ReDim Preserve name(4)
3-4-4 動態陣列 - 2

陣列處理的相關函數說明,如下所示:
• Lbound函數:取得陣列的最小索引,變數
intSize的值是陣列的最小索引,如下所示:
intSize = Lbound(name)
• Ubound函數:取得陣列的最大索引,變數
intSize的值是陣列的最大索引,如下所示:
intSize = Ubound(name)
3-5 VBScript的運算子




3-5-1
3-5-2
3-5-3
3-5-4
運算子的優先順序
算術運算子
字串連結運算子
比較運算子
3-5-1 運算子的優先順序-1



正常的情況,如果運算子沒有優先順序的差異,
運算式依照出現的順序,由左到右依序執行。
括號內比括號外的先執行,通常括號的目的是
為了推翻現有的優先順序,至於括號內則是依
照正常的優先順序。
當運算式超過一個運算子時,算術運算子最先,
接著字串連結,再來是比較運算子,最後才是
邏輯運算子,如下所示:
算數運算子 > 字串連結運算子 > 比較運算子 >
邏輯運算子
3-5-1 運算子的優先順序-2


至於各種運算子內的各種運算,比較運算子的
優先順序相同,算術和邏輯運算子,請參考下
面各節的優先順序表格,表格前面列的優先順
序高,也就需要先執行。
算術運算子加和減法優先順序相同,乘和除法
擁有相同的優先順序,不過乘除高於加減。
3-5-2 算術運算子
運算子
^
*
/
\
Mod
+
-
說明
指數
負號
乘法
除法
整數除法
餘數
加法
減法
運算式範例
5 ^ 2 = 25
-7
5 * 6 = 30
7 / 2 = 3.5
7\2=3
7 mod 2 = 1
4+3=7
4–3=1
3-5-3 字串連結運算子
運算子
&
說明
字串連結
運算式範例
"ab" & "cd" = "abcd"
"ASP3.0 網頁" & "設計" = "ASP3.0 網頁設計"
3-5-4 比較運算子
運算子
=
<>
<
>
<=
>=
Is
說明
等於
不等於
小於
大於
小於等於
大於等於
物件比較
運算式範例
結果
6=3
False
6 <> 3
True
6<3
False
6>3
True
6 <= 3
False
6 >=3
True
比較兩個變數是否指向同一個物件
3-5-5 邏輯運算子
運算子
Not
And
Or
Xor
Eqv
說明
非,傳回運算元相反的值
且,連結的兩個運算元都為 True,則運算式為 True
或,連結的兩個運算元中,任一個為 Ture,則運算式為 True
連結的兩個運算元中,只有一個為真,不同時都為 True 則運算式為
True,否則為 False
兩個運算元同為 True 或 False 則為 True,否則為 False
邏輯運算子
Not A
Not B
A And B
A Or B
A Xor B
A Eqv B
完整的運算式
Not (5 > 3)
Not (4 <= 2)
5 > 3 And 4 <= 2
5 > 3 Or 4 <= 2
5 > 3 Xor 4 <= 2
5 > 3 Eqv 4 <= 2
結果
False
True
False
True
True
False