《動(dòng)態(tài)網(wǎng)站建設(shè)》第3章VBScript腳本語言基礎(chǔ)課件_第1頁
《動(dòng)態(tài)網(wǎng)站建設(shè)》第3章VBScript腳本語言基礎(chǔ)課件_第2頁
《動(dòng)態(tài)網(wǎng)站建設(shè)》第3章VBScript腳本語言基礎(chǔ)課件_第3頁
《動(dòng)態(tài)網(wǎng)站建設(shè)》第3章VBScript腳本語言基礎(chǔ)課件_第4頁
《動(dòng)態(tài)網(wǎng)站建設(shè)》第3章VBScript腳本語言基礎(chǔ)課件_第5頁
已閱讀5頁,還剩74頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第3章VBScript腳本語言基礎(chǔ)第3章VBScript腳本語言基礎(chǔ)13.1腳本語言概述3.1.1腳本語言3.1.2定義網(wǎng)頁中的腳本類型3.1腳本語言概述3.1.1腳本語言2腳本語言腳本是在高級(jí)程序語言基礎(chǔ)上發(fā)展起來的解釋型動(dòng)態(tài)網(wǎng)頁技術(shù)。腳本起源于編程語言,但又不同于編程語言。兩者間的本質(zhì)區(qū)別是:一般編程語言的代碼是一次性翻譯成機(jī)器代碼,執(zhí)行時(shí)就不需要其編譯環(huán)境了;腳本是由專門的腳本引擎來解釋執(zhí)行的,執(zhí)行時(shí)逐條語句翻譯,不能脫離其執(zhí)行引擎來執(zhí)行。腳本語言概述腳本語言腳本是在高級(jí)程序語言基礎(chǔ)上發(fā)展起來的解釋型動(dòng)態(tài)網(wǎng)頁技3腳本語言腳本按執(zhí)行方式和位置的不同,分為客戶機(jī)端腳本和服務(wù)器端腳本兩類。靜態(tài)網(wǎng)頁只能包含客戶機(jī)腳本,ASP動(dòng)態(tài)網(wǎng)頁則可以包含客戶機(jī)腳本和服務(wù)器腳本兩種類型。JavaScript更多地用于客戶端。腳本語言概述腳本語言腳本按執(zhí)行方式和位置的不同,分為客戶機(jī)端腳本和服務(wù)器4VBScript與JavaScript的比較

比較內(nèi)容VBScriptJavaScript可否編寫客戶機(jī)腳本可以可以可否編寫服務(wù)器腳本可以可以用途主要用于編寫服務(wù)器腳本主要用于編寫客戶機(jī)腳本平臺(tái)要求服務(wù)器腳本必須運(yùn)行于IIS;客戶機(jī)腳本必須運(yùn)行于IE(其他瀏覽器可能不支持)需要檢查服務(wù)器平臺(tái)是否支持服務(wù)器腳本;幾乎所有的瀏覽器都支持JavaScript的客戶機(jī)腳本是否區(qū)分大小寫不區(qū)分區(qū)分腳本語言概述VBScript與JavaScript的比較比較內(nèi)容5顯式定義網(wǎng)頁客戶機(jī)腳本

1.可以通過<script>和</script>標(biāo)記來定義網(wǎng)頁的客戶機(jī)腳本類型為VBScript。<scriptLanguage="VBScript"type="text/VBScript">……</script>腳本語言概述案例3-1按鈕單擊響應(yīng)(效果)案例3-1按鈕單擊響應(yīng)(代碼)顯式定義網(wǎng)頁客戶機(jī)腳本1.可以通過<script>和</6顯式定義網(wǎng)頁客戶機(jī)腳本

說明:VBScript代碼應(yīng)寫在<scriptlanguage=“VBScript”>標(biāo)記和</script>標(biāo)記之間。在一個(gè)網(wǎng)頁文件中,可以添加多處VBScript腳本代碼??梢园涯_本代碼定義成一個(gè)過程或函數(shù),只有當(dāng)這段代碼被調(diào)用時(shí)才會(huì)被執(zhí)行??梢园讯鄺lVBScript腳本語句放在同一行,并用冒號(hào)“:”隔開;或?qū)⒁粭l語句分兩行或多行書寫,行尾加一個(gè)續(xù)行符“_”。腳本語言概述顯式定義網(wǎng)頁客戶機(jī)腳本說明:腳本語言概述7顯式定義網(wǎng)頁客戶機(jī)腳本

2.將ASP網(wǎng)頁的服務(wù)器腳本類型定義為VBScript的方法有兩種。一是可以用<%%>標(biāo)記來定義,命令格式為:<%@LANGUAGE="VBSCRIPT"%><%……%>腳本語言概述案例3-2提交表單(代碼)顯式定義網(wǎng)頁客戶機(jī)腳本2.將ASP網(wǎng)頁的服務(wù)器腳本類型定8顯式定義網(wǎng)頁客戶機(jī)腳本說明:<%@%>這樣格式的代碼稱為ASP處理指令,必須放在網(wǎng)頁文件的第一行。<%%>是ASP服務(wù)器腳本的定界符,在服務(wù)器端執(zhí)行的腳本程序要放在這對(duì)符號(hào)里面。用<%%>定界的服務(wù)器端腳本可以根據(jù)需要放在網(wǎng)頁文件的任何位置,腳本代碼運(yùn)行生成HTML標(biāo)記在瀏覽器端顯示。包含服務(wù)器端腳本的網(wǎng)頁文件擴(kuò)展名為“.asp”。腳本語言概述顯式定義網(wǎng)頁客戶機(jī)腳本說明:腳本語言概述9顯式定義網(wǎng)頁客戶機(jī)腳本

二是可以用<script>和</script>標(biāo)記來定義服務(wù)器腳本類型為VBScript,增加參數(shù)runat并令其值為server,命令格式為:<scriptlanguage="vbscript"runat="server">……</script>腳本語言概述案例3-2提交表單2(代碼)顯式定義網(wǎng)頁客戶機(jī)腳本二是可以用<script>和<10顯式定義網(wǎng)頁客戶機(jī)腳本

<html><head><title>3-2-2.asp</title></head><body><scriptlanguage="vbscript"runat="server"type="text/vbscript">a=request.Form("name")response.write"<fontcolor=redsize=7>"response.writea&",你好呀</font>"</script></body></html>

腳本語言概述顯式定義網(wǎng)頁客戶機(jī)腳本<html>腳本語言概述113.2VBScript編程基礎(chǔ)3.2.1VBScript的輸入和輸出3.2.2VBScript的數(shù)據(jù)類型3.2.3VBScript的常量3.2.5VBScript的數(shù)組變量3.2.6VBScript的運(yùn)算符和表達(dá)式3.2VBScript編程基礎(chǔ)3.2.1VBScrip12VBScript的輸入和輸出

VBScript提供了3種從外界獲取數(shù)據(jù)和輸出數(shù)據(jù)的方式:①在客戶端腳本中使用輸入函數(shù)Inputbox()和輸出函數(shù)Msgbox();②在客戶端使用瀏覽器對(duì)象獲得數(shù)據(jù)或輸出數(shù)據(jù);③在服務(wù)器端腳本中使用Request、Response等內(nèi)置對(duì)象來獲得數(shù)據(jù)或輸出數(shù)據(jù)。VBScript編程基礎(chǔ)VBScript的輸入和輸出VBScript提供了3種13VBScript的輸入和輸出

InputBox函數(shù)的功能是在對(duì)話框中顯示提示,等待用戶輸人文本或單擊按鈕,并返回文本框內(nèi)容。這個(gè)函數(shù)的基本格式如下:InputBox(提示[,標(biāo)題][,缺省輸入][,X坐標(biāo)][,Y坐標(biāo)])VBScript編程基礎(chǔ)VBScript的輸入和輸出InputBox函數(shù)的功能14VBScript的輸入和輸出MsgBox函數(shù)的功能是彈出對(duì)話框并在對(duì)話框中顯示消息,等待用戶單擊按鈕后返回一個(gè)值指示用戶單擊的按鈕。這個(gè)函數(shù)的主要格式如下:MsgBox(提示[,按鈕組合值][,標(biāo)題])VBScript編程基礎(chǔ)VBScript的輸入和輸出MsgBox函數(shù)的功能是彈15VBScript的輸入和輸出<scriptlanguage="vbscript"type="text/vbscript">dims1,s2,ss,anss1=Inputbox("請(qǐng)輸入第一個(gè)字符串:","Inputbox函數(shù)舉例","字符串連接")s2=Inputbox("請(qǐng)輸入第二個(gè)字符串:","Inputbox函數(shù)舉例")ans=Msgbox("可以連接了嗎?",33)ifans=1thenss=s1+s2Msgbox"兩個(gè)字符串連接的結(jié)果是:"&vbCrLf_&ss,64,"Msgbox函數(shù)舉例"endif</script>VBScript編程基礎(chǔ)案例3-3輸入/輸出函數(shù)示例(效果)VBScript的輸入和輸出<scriptlanguage16VBScript的數(shù)據(jù)類型VBScript只有一種數(shù)據(jù)類型,即Variant(變體)類型。根據(jù)使用的方式,它可以包含不同類別的信息。Variant可以包含簡單的數(shù)字、字符串和布爾型信息,也可以包含復(fù)雜的日期型、浮點(diǎn)型和對(duì)象型信息。Variant包含的數(shù)值信息類型稱為子類型。數(shù)據(jù)在各個(gè)子類型之間是可以相互轉(zhuǎn)換的。VBScript編程基礎(chǔ)VBScript的數(shù)據(jù)類型VBScript只有一種數(shù)據(jù)類型,17VBScript的常量常量有兩種,一種是具體直觀的數(shù)據(jù),如5,“abc”,#6-1-2008#等;另一種叫做符號(hào)常量,即用具有一定含義的名稱符號(hào)來代替具體直觀的數(shù)據(jù)。Constmystring="你好嗎?"Constpi=3.1415926Consttoday=#2008-2-7#VBScript編程基礎(chǔ)VBScript的常量常量有兩種,一種是具體直觀的數(shù)據(jù)18VBScript的常量VBScript還定義了許多保留常量,這些常量是不能被用來定義的。VBScript編程基礎(chǔ)常量值含義True布爾真值False布爾假值Null空值,可用來指示變量不包含有效數(shù)據(jù)Empty沒有初始化的變量值vbCr回車vbCrLf回車/換行vbTab制表符VBScript的常量VBScript還定義了許多保留19VBScript的變量VBScript變量的命名應(yīng)遵循一定的規(guī)則(也是常量命名應(yīng)遵循的規(guī)則):變量名可以由字母、數(shù)字、下劃線組成;第一個(gè)字符必須是字母;長度不能超過255個(gè)字符;不能用保留的關(guān)鍵字命名;在被聲明的作用域內(nèi)必須唯一。VBScript編程基礎(chǔ)案例3-4變量(效果)VBScript的變量VBScript變量的命名應(yīng)遵循20VBScript的變量變量可使用的范圍叫做變量的作用域。如果在過程中聲明變量,則只有該過程中的代碼可以訪問或更改變量值,此時(shí)變量具有局部作用域,稱為局部變量,或過程級(jí)變量。如果在過程之外聲明變量,則該變量可以被其后腳本中所有語句和過程所識(shí)別和使用,具有腳本級(jí)作用域,稱為腳本級(jí)變量。變量存在的時(shí)間稱為存活期。腳本級(jí)變量的存活期從被聲明時(shí)開始,直到腳本運(yùn)行結(jié)束。過程級(jí)的局部變量存活期僅僅是該過程運(yùn)行的時(shí)間,該過程結(jié)束后,變量也隨之消失。在執(zhí)行過程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間??梢栽诓煌^程中使用同名的局部變量,因?yàn)槊總€(gè)局部變量只被聲明它的過程所識(shí)別。VBScript編程基礎(chǔ)VBScript的變量變量可使用的范圍叫做變量的作用域。如果21VBScript的變量

VBScript中聲明變量的方法有:①用Dim聲明變量,語法格式為:Dim變量名1,變量名2,…②用private聲明變量,語法格式為:Private變量名1,變量名2,…③用Public聲明變量,語法格式為:Public變量名1,變量名2,…VBScript編程基礎(chǔ)VBScript的變量VBScript中聲明變量的方法22VBScript的變量這條語句規(guī)定了網(wǎng)頁中的變量必須顯式定義后才能使用。OptionExplicit編寫客戶端腳本時(shí),該語句只在其所在的</script>標(biāo)記和</script>標(biāo)記之間有效,必須放在所有語句的前面。如果是編寫服務(wù)器端腳本,則該語句應(yīng)放在緊隨<%@language=vbscript%>之后。它對(duì)網(wǎng)頁文件內(nèi)任意<%%>中的變量聲明都有約束作用。VBScript編程基礎(chǔ)VBScript的變量這條語句規(guī)定了網(wǎng)頁中的變量必須顯式定義23VBScript的數(shù)組變量數(shù)組下標(biāo)是從0開始的。聲明數(shù)組時(shí)括號(hào)中的數(shù)字表明該數(shù)組可用的最大下標(biāo)。數(shù)組中數(shù)據(jù)是Variant類型,所以同一數(shù)組中的不同元素可以是不同子類型的數(shù)據(jù)。在腳本運(yùn)行時(shí)大小發(fā)生變化的數(shù)組,是動(dòng)態(tài)數(shù)組。在使用之前必須先用Redim語句確定數(shù)組的大小。重新調(diào)整動(dòng)態(tài)數(shù)組的大小時(shí),如果使用關(guān)鍵字Preserve,將保留相應(yīng)數(shù)組元素原來的內(nèi)容。VBScript編程基礎(chǔ)案例3-5數(shù)組變量(效果)VBScript的數(shù)組變量數(shù)組下標(biāo)是從0開始的。聲明數(shù)組時(shí)括24VBScript的運(yùn)算符和表達(dá)式VBScript編程基礎(chǔ)運(yùn)算符含義示例結(jié)果運(yùn)算符含義示例結(jié)果+加3+47\整除求商5\31-減3-4-1^乘方3^481*乘3*412MOD取余數(shù)5MOD32/除3/40.75算術(shù)運(yùn)算符:VBScript的運(yùn)算符和表達(dá)式VBScript編程基25VBScript的運(yùn)算符和表達(dá)式VBScript編程基礎(chǔ)關(guān)系運(yùn)算符:運(yùn)算符含義示例=等于66=88的結(jié)果為False<>不等于66<>88的結(jié)果為True<小于66<88的結(jié)果為True>大于66>88的結(jié)果為False<=小于等于66<=88的結(jié)果為True>=大于等于66>=88的結(jié)果為FalseVBScript的運(yùn)算符和表達(dá)式VBScript編程基26VBScript的運(yùn)算符和表達(dá)式VBScript編程基礎(chǔ)邏輯運(yùn)算符:運(yùn)算符第一個(gè)值第二個(gè)值示例結(jié)果與運(yùn)算ANDTrueTrue3>2AND5>4TrueTrueFalse3>2AND5<4FalseFalseTrue3<2AND5>4FalseFalseFalse3<2AND5<4False或運(yùn)算ORTrueTrue3>2OR5>4TrueTrueFalse3>2OR5<4TrueFalseTrue3<2OR5>4TrueFalseFalse3<2OR5<4False非運(yùn)算NOTTrue-NOT3>2FalseFalse-NOT3<2TrueVBScript的運(yùn)算符和表達(dá)式VBScript編程基27VBScript的運(yùn)算符和表達(dá)式連接運(yùn)算符:VBScript中的連接運(yùn)算符“&”可以用于兩個(gè)任意類型的數(shù)據(jù)連接?!?”號(hào)除了作為加法運(yùn)算符之外,也可以做連接符,只是它所連接的必須是兩個(gè)字符串。VBScript編程基礎(chǔ)VBScript的運(yùn)算符和表達(dá)式連接運(yùn)算符:VBScri28VBScript的運(yùn)算符和表達(dá)式運(yùn)算符的優(yōu)先級(jí):運(yùn)算時(shí)總是先執(zhí)行括號(hào)中的運(yùn)算符在執(zhí)行括號(hào)外的運(yùn)算符;當(dāng)表達(dá)式包含多種運(yùn)算符時(shí),執(zhí)行次序?yàn)樗阈g(shù)運(yùn)算符->連接運(yùn)算符->比較運(yùn)算符->邏輯運(yùn)算符;各數(shù)學(xué)運(yùn)算符的優(yōu)先級(jí)與數(shù)學(xué)中的規(guī)定一致;所有的關(guān)系運(yùn)算符優(yōu)先級(jí)別相同,按從左至右的順序執(zhí)行。VBScript編程基礎(chǔ)VBScript的運(yùn)算符和表達(dá)式運(yùn)算符的優(yōu)先級(jí):VBScri293.3VBScript的基本語句3.3.1分支語句3.3.2循環(huán)語句3.3.3VBScript的過程和函數(shù)3.3.4注釋語句3.3.5容錯(cuò)語句3.3VBScript的基本語句3.3.1分支語句30分支語句1.If…Then語句①單一分支:If條件Then語句組EndIf當(dāng)Then后面只有一條語句時(shí),這種格式可簡寫為:If條件Then語句VBScript基本語句分支語句1.If…Then語句VBScript基本31分支語句<scriptlanguage="vbscript">a=inputbox("shuru")’用戶輸入一個(gè)成績ifa<60then’判斷如果該成績小于60msgbox"nopass"’條件成立,輸出“不及格”endif’條件語句結(jié)束</script>VBScript基本語句案例3-6成績判定(效果)分支語句<scriptlanguage="vbscript32分支語句②兩重分支If條件Then語句組1Else語句組2EndIfVBScript基本語句分支語句②兩重分支VBScript基本語句33分支語句<scriptlanguage="vbscript">a=inputbox("請(qǐng)輸入你的成績")’用戶輸入一個(gè)成績ifa<60then’判斷如果該成績小于60Msgbox"遺憾啊,不及格"’條件成立,輸出“不及格”else’否則Msgbox“及格了,繼續(xù)努力”’條件不成立,輸出“及格”endif</script>VBScript基本語句案例3-6成績判定2(效果)分支語句<scriptlanguage="vbscript34分支語句③多重分支If條件1Then語句組1Elseif條件2Then語句組2Elseif條件3Then語句組3……Else語句組n+1EndIfVBScript基本語句分支語句③多重分支VBScript基本語句35分支語句a=inputbox("請(qǐng)輸入你的成績")’用戶輸入一個(gè)成績ifa<60then’判斷如果該成績小于60grade="E"’條件成立,等級(jí)為Eelseifa<70thengrade="D"elseifa<80thengrade="C"elseifa<70thengrade="B"elsegrade="A"endifmsgbox"你的成績等級(jí)為:"&gradeVBScript基本語句案例3-7成績等級(jí)(效果)分支語句a=inputbox("請(qǐng)輸入你的成績")’用戶36分支語句2.SelectCase語句SelectCase表達(dá)式Case值1語句組1Case值2語句組2Case值3語句組3……CaseElse語句組n+1EndSelectVBScript基本語句分支語句2.SelectCase語句VBScript基37分支語句t=int(a/10)’成績除以10取整SelectCasetCase9,10’90多分或100分為A等grade="A"Case8grade="B"Case7grade="C"Case6grade="D"Caseelsegrade="E"EndSelectVBScript基本語句案例3-7成績判定2(效果)分支語句t=int(a/10)’成績除以138循環(huán)語句在VBScript中,循環(huán)語句可分為三類:一類是條件式循環(huán),另一類是指定循環(huán)次數(shù)的循環(huán),還有一種是針對(duì)數(shù)組和集合操作的循環(huán)。具體的語句格式有以下幾種:①DoWhile…Loop:當(dāng)條件為True時(shí)執(zhí)行循環(huán)。②DoUntil…Loop:當(dāng)條件為True時(shí)結(jié)束循環(huán)。③Do…LoopWhile:先執(zhí)行循環(huán),再進(jìn)行條件判斷。④Do…LoopUntil:先執(zhí)行循環(huán),再進(jìn)行條件判斷。⑤While…Wend:如果條件為True則執(zhí)行循環(huán)。⑥For…Next:指定循環(huán)次數(shù)的循環(huán)。⑦ForEachIn…Next:對(duì)于集合或數(shù)組中每個(gè)元素重復(fù)執(zhí)行某操作的循環(huán)。VBScript基本語句循環(huán)語句在VBScript中,循環(huán)語句可分為三類:一類是條件39循環(huán)語句1.條件式循環(huán)<scriptlanguage="vbscript"type="text/vbscript"><!--ans=Inputbox("請(qǐng)輸入“快樂”的英文")dowhileUcase(ans)<>"HAPPY"msg="不正確"&vbcrlf&"請(qǐng)重新輸入“快樂”的英文"ans=Inputbox(msg)loopMsgbox"真棒!你答對(duì)了!"--></script>

VBScript基本語句案例3-8英文單詞小測(cè)驗(yàn)(效果)循環(huán)語句1.條件式循環(huán)VBScript基本語句案例40循環(huán)語句用While…Wend改寫:<scriptlanguage="vbscript"type="text/vbscript"><!--ans=Inputbox("請(qǐng)輸入“快樂”的英文")WhileUcase(ans)<>"HAPPY"msg="不正確"&vbcrlf&"請(qǐng)重新輸入“快樂”的英文"ans=Inputbox(msg)WendMsgbox"真棒!你答對(duì)了!"--></script>VBScript基本語句循環(huán)語句用While…Wend改寫:VBScript基本41循環(huán)語句用DoUntil…Loop改寫:<scriptlanguage="vbscript"type="text/vbscript"><!--ans=Inputbox("請(qǐng)輸入“快樂”的英文")DoUntilUcase(ans)="HAPPY"msg="不正確"&vbcrlf&"請(qǐng)重新輸入“快樂”的英文"ans=Inputbox(msg)LoopMsgbox"真棒!你答對(duì)了!"--></script>

VBScript基本語句循環(huán)語句用DoUntil…Loop改寫:VBScrip42循環(huán)語句

以上三種格式都是先判斷再循環(huán),循環(huán)體可能被執(zhí)行一次或多次,也可能一次也不執(zhí)行。不同的是DoWhile和While-Wend是當(dāng)條件為“真”時(shí)執(zhí)行循環(huán),DoUntil是當(dāng)條件為“假”時(shí)執(zhí)行循環(huán)而當(dāng)條件為“真”時(shí)結(jié)束循環(huán)。

VBScript基本語句循環(huán)語句以上三種格式都是先判斷再循環(huán),循環(huán)體可能被執(zhí)行43循環(huán)語句info="請(qǐng)輸入一個(gè)數(shù)字"doans=inputbox(info)ifans=""thenmsgbox"不猜了,結(jié)束吧"exitdoelseifans>666thenmsgbox"你輸入的數(shù)太大了"elseifans<666thenmsgbox"你輸入的數(shù)太小了"endifinfo="朋友,你還沒有猜對(duì)!"&vbcrlf&"請(qǐng)重新輸入一個(gè)數(shù)字"loopwhileans<>666ifans<>""thenmsgbox"恭喜你猜對(duì)了!!!"endifVBScript基本語句案例3-9猜數(shù)字游戲(效果)循環(huán)語句info="請(qǐng)輸入一個(gè)數(shù)字"VBScript基本44循環(huán)語句用do…loopuntil改寫:doans=inputbox(info)ifans=""thenmsgbox"不猜了,結(jié)束吧"exitdoelseifans>666thenmsgbox"你輸入的數(shù)太大了"elseifans<666thenmsgbox"你輸入的數(shù)太小了"endifinfo="朋友,你還沒有猜對(duì)!"&vbcrlf&"請(qǐng)重新輸入一個(gè)數(shù)字"loopuntilans=666VBScript基本語句循環(huán)語句用do…loopuntil改寫:VBScript45循環(huán)語句以上兩種循環(huán)形式,在開始循環(huán)時(shí)會(huì)首先執(zhí)行一次循環(huán)體,然后再進(jìn)行條件判斷。循環(huán)體至少要被執(zhí)行一次。不同的是do…loopwhile語句在條件為真時(shí)執(zhí)行循環(huán),do…loopuntil在條件為真時(shí)結(jié)束循環(huán)。條件循環(huán)根據(jù)條件判斷的結(jié)果決定是否執(zhí)行循環(huán)體,而不考慮循環(huán)的次數(shù)。它在不能確定具體循環(huán)次數(shù)的時(shí)候是很有用的,但要注意語句中循環(huán)條件的設(shè)定,要避免出現(xiàn)“死循環(huán)”。VBScript基本語句循環(huán)語句VBScript基本語句46循環(huán)語句2.計(jì)數(shù)循環(huán)For…Next在編程者可以確定循環(huán)的執(zhí)行次數(shù)且不需要測(cè)試條件時(shí),可以使用For語句。

語句基本格式:For變量=初始值To終止值[step步長值]循環(huán)體Next當(dāng)步長為負(fù)時(shí),每次判斷要看變量的值是否大于等于終止值,若是則執(zhí)行循環(huán)體,否則結(jié)束循環(huán)。如果循環(huán)變量的初值小于終止值,循環(huán)體一次也不會(huì)執(zhí)行。VBScript基本語句循環(huán)語句2.計(jì)數(shù)循環(huán)For…NextVBScript47循環(huán)語句subb1_onclickdimi,s,n1,n2s=0n1=form1.num1.valuen2=form1.num2.valueifn1>n2thent=n1n1=n2n2=tendiffori=n1ton2s=s+inextmsgbox"s="&sendsubVBScript基本語句案例3-10簡單累加器

(效果)循環(huán)語句subb1_onclickVBScript基本48循環(huán)語句3.數(shù)組循環(huán)ForEachIn…NextForEach語句只適用于數(shù)組和集合的元素進(jìn)行循環(huán)操作。該語句的具體格式如下:ForEach變量In集合名或數(shù)組名循環(huán)體Next該語句的主要功能是對(duì)集合或數(shù)組中的每個(gè)元素依次執(zhí)行循環(huán)體的操作,在循環(huán)中變量會(huì)依次取得集合或數(shù)組中元素的值(而非數(shù)組元素的下標(biāo))。使用時(shí)只寫明數(shù)組或集合的名稱,而不寫下標(biāo)。

VBScript基本語句循環(huán)語句3.數(shù)組循環(huán)ForEachIn…NextVB49循環(huán)語句<scriptlanguage="vbscript"type="text/vbscript">subb1_OnClickdimt,msgforeachtindocument.form1msg=msg&t.value&vbcrlfnextmsgboxmsgendsub</script>VBScript基本語句案例3-11提取表單各項(xiàng)內(nèi)容并輸出(效果)循環(huán)語句<scriptlanguage="vbscript50循環(huán)語句<scriptlanguage="vbscript"type="text/vbscript">OptionExplicitDims(),iReDims(3)Fori=0toUbound(s)s(i)=i+1NextForEachiInsdocument.Writei&"<br>"Next</script>

注:Ubound()函數(shù)的參數(shù)是一個(gè)數(shù)組名,其作用是返回該數(shù)組的元素個(gè)數(shù)

VBScript基本語句案例3-12數(shù)組循環(huán)與計(jì)數(shù)循環(huán)的比較(效果)循環(huán)語句<scriptlanguage="vbscript51VBScript的過程和函數(shù)VBScript中的過程與函數(shù)兩者概念類似,它們都是具有一定功能的代碼塊。但過程只是完成一定的任務(wù),沒有返回值;而函數(shù)可以有返回值。VBScript基本語句VBScript的過程和函數(shù)VBScript基本語句52VBScript的過程和函數(shù)定義過程的格式如下:Sub過程名稱[(參數(shù)1,參數(shù)2,…,參數(shù)n)]程序代碼EndSub過程只有被調(diào)用時(shí)才會(huì)執(zhí)行。腳本代碼中調(diào)用過程有兩種方法:①Call過程名[(參數(shù)1,參數(shù)2,…,參數(shù)n)]②過程名[參數(shù)1,參數(shù)2,…,參數(shù)n]這兩種調(diào)用的效果是一樣的。在不使用Call語句進(jìn)行過程調(diào)用時(shí),要去掉參數(shù)列表的括號(hào)。VBScript基本語句VBScript的過程和函數(shù)定義過程的格式如下:VBScri53VBScript的過程和函數(shù)一般過程執(zhí)行到EndSub語句時(shí)才會(huì)結(jié)束,但也可以用ExitSub語句提早結(jié)束過程。過程調(diào)用語句可以在過程定義之前,也可以在過程定義之后??梢栽谝粋€(gè)過程的執(zhí)行中調(diào)用另外一個(gè)過程。但不要在一個(gè)過程定義中嵌套定義過程。VBScript基本語句VBScript的過程和函數(shù)一般過程執(zhí)行到EndSub語句54VBScript的過程和函數(shù)<scriptlanguage="vbscript"type="text/vbscript">OptionExplicitDimnum,s,inum=inputbox("請(qǐng)輸入一個(gè)數(shù)")Subcalc(n)s=1Fori=1tons=s*iNextMsgboxn&"的階乘是"&sEndSubCallcalc(num)</script>VBScript基本語句案例3-13計(jì)算階乘(效果)VBScript的過程和函數(shù)<scriptlanguage55VBScript的過程和函數(shù)定義函數(shù)的格式如下:Function函數(shù)名[(參數(shù)1,參數(shù)2,…,參數(shù)n)]程序代碼函數(shù)名=返回值EndFunction一般函數(shù)的調(diào)用格式如下:變量名稱=函數(shù)名[(參數(shù)1,參數(shù)2,…,參數(shù)n)]VBScript基本語句案例3-14計(jì)算階乘之二(代碼)VBScript的過程和函數(shù)定義函數(shù)的格式如下:VBScri56VBScript的過程和函數(shù)Subcalc()num=form1.num.values=p(num)form1.result.value=sEndSubFunctionp(n)s=1Fori=1tons=s*iNextp=sEndFunctionVBScript基本語句VBScript的過程和函數(shù)Subcalc()VBScri57VBScript的過程和函數(shù)VBScript的過程還可以偵測(cè)到用戶對(duì)瀏覽器所做的操作,也就是說不論用戶在瀏覽器上移動(dòng)鼠標(biāo)或是點(diǎn)擊了某處,都可以編寫過程來響應(yīng)。這時(shí),先由編程者定義一個(gè)過程名,然后在對(duì)象的標(biāo)記中增加“事件=過程名”這一句,意思是當(dāng)對(duì)象的某個(gè)事件發(fā)生時(shí)就去執(zhí)行過程。常用的事件有:OnClick、OnBlur、OnFocus、Onselect、OnChange、OnMouseOver、OnMouseDown、OnMouseMove等。

VBScript基本語句案例3-14計(jì)算階乘之二(效果)VBScript的過程和函數(shù)VBScript的過程還可以偵測(cè)58VBScript的過程和函數(shù)另一種事件響應(yīng)的形式是,定義過程時(shí),將過程名命名為“對(duì)象名稱_事件名稱”。例如:SubB1_onclick()……Endsub這樣,當(dāng)名字為“B1”的按鈕被點(diǎn)擊時(shí)也會(huì)執(zhí)行該過程。此時(shí)按鈕B1的<input>標(biāo)記中就不用添加“事件=函數(shù)名”一項(xiàng)了。VBScript基本語句VBScript的過程和函數(shù)另一種事件響應(yīng)的形式是,定義過程59注釋語句VBScript有專門的注釋語句,格式為:Rem注釋內(nèi)容注釋語句可以單獨(dú)占一行,也可以放在某行代碼的后面。但是在同一行內(nèi),續(xù)行符后面不能有注釋。Rem注釋語句可以用在服務(wù)器腳本和客戶機(jī)腳本上。除此之外,VBScript還支持一種簡便的添加注釋的方式,將注釋內(nèi)容以一個(gè)撇號(hào)“’”開頭。它與注釋語句Rem作用是一樣的,VBScript基本語句注釋語句VBScript有專門的注釋語句,格式為:VB60容錯(cuò)語句在前述計(jì)算階乘的案例3-14中,用戶輸入數(shù)據(jù)時(shí)如果輸入的是字母而不是數(shù)字,會(huì)顯示程序錯(cuò)誤。VBScript提供了一條語句可以把錯(cuò)誤擋下來,而不讓它返回瀏覽器造成分頁錯(cuò)誤:OnErrorResumeNextVBScript基本語句容錯(cuò)語句在前述計(jì)算階乘的案例3-14中,用戶輸入數(shù)據(jù)61容錯(cuò)語句Subb1_onclick()

OnErrorResumeNextDimnum,n,sn=form1.num.values=1Fori=1ton

Iferr.number=0Then’如果number<>0,說明有錯(cuò)誤發(fā)生s=s*iElseMsgbox"輸入錯(cuò)誤!",48ExitForEndIfNextform1.result.value=sEndSubVBScript基本語句案例3-15錯(cuò)誤處理(效果)容錯(cuò)語句Subb1_onclick()VBScript基623.4VBScript主要函數(shù)3.4.1字符串處理函數(shù)3.4.2轉(zhuǎn)換函數(shù)3.4.3日期和時(shí)間函數(shù)3.4.4數(shù)學(xué)函數(shù)3.4.5檢驗(yàn)函數(shù)3.4VBScript主要函數(shù)3.4.1字符串處理函數(shù)63字符串處理函數(shù)VBScript主要函數(shù)函數(shù)名稱功能Asc(S)返回與字符串S的第一個(gè)字母對(duì)應(yīng)的ANSI字符代碼Chr(x)把x作為ASCII碼,返回對(duì)應(yīng)的字符Lcase(S)將字符串S中字母都轉(zhuǎn)化為小寫形式Ucase(S)將字符串S中字母都轉(zhuǎn)化為大寫形式Instr(S1,S2)返回字符串S2在字符串S1中第一次出現(xiàn)的位置。如果在字符串S1中沒有找到字符串S2,則返回0。Len(S)返回字符串S的長度Left(S,t)返回指定數(shù)目(長度)t的從字符串S的左邊算起的字符Right(S,t)返回指定數(shù)目(長度)t的從字符串S的右邊算起的字符字符串處理函數(shù)VBScript主要函數(shù)函數(shù)名稱64字符串處理函數(shù)VBScript主要函數(shù)函數(shù)名稱功能Mid(S,t1,t2)取子串,從字符串S指定的起始位置t1返回指定數(shù)目t2的字符Ltrim(S)刪除字符串S左邊的空格Rtrim(S)刪除字符串S右邊的空格Trim(S)去掉字符串S前后的空格Strcomp(S1,S2)返回字符串結(jié)果的值。如果字符串S1小于字符串S2,返回-1;如果字符串S1等于字符串S2,返回0;如果字符串S1大于字符串S2,返回1。Replace(S,S1,S2)用字符串S2替換原字符串S中的子字符串S1String(n,S)生成由字符串S重復(fù)而得的長度為n的字符串Strreverse(S)字符串翻轉(zhuǎn)字符串處理函數(shù)VBScript主要函數(shù)函數(shù)名稱65字符串處理函數(shù)<scriptlanguage="vbscript"type="text/vbscript">Dimmag,start,lengthstart=1msg="歡迎來到我的酷寶貝小站"length=Len(msg)Subchange()window.Status=Mid(msg,start,length-start+1)+Left(msg,start)start=start+1Ifstart>lengthThenstart=1window.SetTimeOut"change()",200EndSubCallchange()</script>VBScript主要函數(shù)案例3-16狀態(tài)欄滾動(dòng)文字(效果)字符串處理函數(shù)<scriptlanguage="vbscr66轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)用于將某種類型的數(shù)據(jù)轉(zhuǎn)換成其他類型的數(shù)據(jù)。VBScript中常用的轉(zhuǎn)換函數(shù)有如下幾種:1.Cbool函數(shù):功能:將數(shù)值型、日期型等數(shù)據(jù)轉(zhuǎn)換為布爾型數(shù)據(jù)。例如,Cbool(#2008-2-7#)的結(jié)果為True,Cbool(0)的結(jié)果為False。VBScript主要函數(shù)轉(zhuǎn)換函數(shù)轉(zhuǎn)換函數(shù)用于將某種類型的數(shù)據(jù)轉(zhuǎn)換成其他類型的67轉(zhuǎn)換函數(shù)2.Cdat函數(shù)功能:以1899年為標(biāo)準(zhǔn)將數(shù)值型數(shù)據(jù)和數(shù)字型文本的整數(shù)部分轉(zhuǎn)換成一個(gè)日期型數(shù)據(jù),小數(shù)部分轉(zhuǎn)換成時(shí)間型數(shù)據(jù)。例如,Cdate(1234567.89)和Cdate(“1234567.89”)的結(jié)果為5280-2-1521:21:36。對(duì)于形如“29-3-7”的文本,Cdate(“29-3-7”)轉(zhuǎn)換結(jié)果為2029-3-7,轉(zhuǎn)換規(guī)則是0~29之間的年份,前面被加上“20”,30以上的年份,前面被加上“19”。特殊的,Cdate(true)結(jié)果為1899-12-29,Cdate(false)結(jié)果為0:00:00。VBScript主要函數(shù)轉(zhuǎn)換函數(shù)2.Cdat函數(shù)VBScript主要函數(shù)68轉(zhuǎn)換函數(shù)3.Cdbl函數(shù)功能:把布爾型、日期時(shí)間型或數(shù)值型數(shù)據(jù)轉(zhuǎn)換成一個(gè)雙精度數(shù)。如果要轉(zhuǎn)換的數(shù)據(jù)是日期時(shí)間型,此函數(shù)與Cdate函數(shù)作用相反。例如,Cdbl(#2008-2-721:21:36#)結(jié)果為39485.89。4.Cint函數(shù)功能:將布爾型、日期時(shí)間型或數(shù)值型數(shù)據(jù)轉(zhuǎn)換成一個(gè)整數(shù),如果有小數(shù)部分,則四舍五入。例如,Cint(#1900-2-721:21:36#)結(jié)果為40,Cint(true)結(jié)果為-1。VBScript主要函數(shù)轉(zhuǎn)換函數(shù)3.Cdbl函數(shù)VBScript主要函數(shù)69轉(zhuǎn)換函數(shù)5.Clng函數(shù)功能:把布爾型、日期時(shí)間型或數(shù)值型數(shù)據(jù)轉(zhuǎn)換成一個(gè)長整型數(shù),如果有小數(shù)部分,則四舍五入。例如,clng(#2008-2-721:21:36#)結(jié)果為39486。6.Csng函數(shù)功能:把布爾型、日期時(shí)間型或數(shù)值型數(shù)據(jù)轉(zhuǎn)換成一個(gè)單精度數(shù)。例如,csng(#2008-2-721:21:36#)結(jié)果為39485.89。7.Cstr函數(shù)功能:將數(shù)據(jù)轉(zhuǎn)換成一個(gè)字符串。例如,mid(cstr(1234567.89),1,3)結(jié)果為“123”。VBScript主要函數(shù)轉(zhuǎn)換函數(shù)5.Clng函數(shù)VBScript主要函數(shù)70轉(zhuǎn)換函數(shù)8.Cbyte函數(shù)功能:將數(shù)據(jù)轉(zhuǎn)換成Byte數(shù)據(jù)類型。Byte類型數(shù)據(jù)容納的范圍是0到255的正數(shù),如果所轉(zhuǎn)換的數(shù)據(jù)超出了這個(gè)范圍,將得到一個(gè)溢出錯(cuò)誤。9.Ccur函數(shù)功能:將數(shù)值轉(zhuǎn)化成Currency數(shù)據(jù)類型,這種數(shù)據(jù)類型最多可以處理小數(shù)點(diǎn)右側(cè)4位小數(shù),因此常用于貨幣計(jì)算。VBScript主要函數(shù)轉(zhuǎn)換函數(shù)8.Cbyte函數(shù)VBScript主要函71日期和時(shí)間函數(shù)VBScript主要函數(shù)VBScript常見的日期和時(shí)間函數(shù):函數(shù)名稱功能Now()返回當(dāng)前系統(tǒng)的日期和時(shí)間Date()返回當(dāng)前系統(tǒng)的日期Year(日期)返回日期中的年份Month(日期)返回日期中的月份Day(日期)返回日期中的日Weekday(日期)返回日期的星期數(shù)Time()返回當(dāng)前系統(tǒng)的時(shí)間Hour(時(shí)間)返回時(shí)間的小時(shí)數(shù)Minute(時(shí)間)返回時(shí)間的分鐘數(shù)Second(時(shí)間)返回時(shí)間的秒數(shù)日期和時(shí)間函數(shù)VBScript主要函數(shù)VBScrip72日期和時(shí)間函數(shù)VBScript主要函數(shù)<scriptlanguage="vbscript"type="text/vbscript">document.Write"你好,朋友。"y=Year(date)m=Month(date)d=Day(date)h=Hour(time)minu=Min

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論