VBScript 變量你所不知道的秘密

什么是變量磷杏?

變量是一種使用方便的占位符,用于引用計(jì)算機(jī)內(nèi)存地址捏卓,該地址可以存儲(chǔ) Script 運(yùn)行時(shí)可更改的程序信息极祸。例如慈格,可以創(chuàng)建一個(gè)名為? ClickCount 的變量來(lái)存儲(chǔ)用戶單擊 Web? 頁(yè)面上某個(gè)對(duì)象的次數(shù)。使用變量并不需要了解變量在計(jì)算機(jī)內(nèi)存中的地址遥金,只要通過(guò)變量名引用變量就可以查看或更改變量的值浴捆。在 VBScript? 中只有一個(gè)基本數(shù)據(jù)類型,即Variant稿械,因此所有變量的數(shù)據(jù)類型都是Variant选泻。

聲明變量

聲明變量的一種方式是使用Dim語(yǔ)句、Public語(yǔ)句和Private語(yǔ)句在 Script 中顯式聲明變量美莫。例如: Dim DegreesFahrenheit

聲明多個(gè)變量時(shí)页眯,使用逗號(hào)分隔變量。例如:Dim Top, Bottom, Left, Right

另一種方式是通過(guò)直接在 Script? 中使用變量名這一簡(jiǎn)單方式隱式聲明變量厢呵。這通常不是一個(gè)好習(xí)慣窝撵,因?yàn)檫@樣有時(shí)會(huì)由于變量名被拼錯(cuò)而導(dǎo)致在運(yùn)行 Script 時(shí)出現(xiàn)意外的結(jié)果。因此襟铭,最好使用Option Explicit語(yǔ)句顯式聲明所有變量碌奉,并將其作為 Script 的第一條語(yǔ)句。

命名規(guī)則

變量命名必須遵循 VBScript 的標(biāo)準(zhǔn)命名規(guī)則寒砖。變量命名必須遵循:

第一個(gè)字符必須是字母赐劣。

不能包含嵌入的句點(diǎn)。

長(zhǎng)度不能超過(guò) 255 個(gè)字符入撒。

在被聲明的作用域內(nèi)必須唯一隆豹。

變量的作用域與存活期

變量的作用域由聲明它的位置決定。如果在過(guò)程中聲明變量茅逮,則只有該過(guò)程中的代碼可以訪問(wèn)或更改變量值璃赡,此時(shí)變量具有局部作用域并被稱為過(guò)程級(jí)變量。如果在過(guò)程之外聲明變量献雅,則該變量可以被 Script? 中所有過(guò)程所識(shí)別碉考,稱為 Script 級(jí)變量,具有 Script 級(jí)作用域挺身。

變量存在的時(shí)間稱為存活期侯谁。Script 級(jí)變量的存活期從被聲明的一刻起,直到 Script? 運(yùn)行結(jié)束章钾。對(duì)于過(guò)程級(jí)變量墙贱,其存活期僅是該過(guò)程運(yùn)行的時(shí)間,該過(guò)程結(jié)束后贱傀,變量隨之消失惨撇。在執(zhí)行過(guò)程時(shí),局部變量是理想的臨時(shí)存儲(chǔ)空間府寒】茫可以在不同過(guò)程中使用同名的局部變量报腔,這是因?yàn)槊總€(gè)局部變量只被聲明它的過(guò)程識(shí)別。

給變量賦值

創(chuàng)建如下形式的表達(dá)式給變量賦值:變量在表達(dá)式左邊剖淀,要賦的值在表達(dá)式右邊纯蛾。例如:B = 200

標(biāo)量變量和數(shù)組變量

多數(shù)情況下,只需為聲明的變量賦一個(gè)值纵隔。只包含一個(gè)值的變量被稱為標(biāo)量變量翻诉。有時(shí)候,將多個(gè)相關(guān)值賦給一個(gè)變量更為方便巨朦,因此可以創(chuàng)建包含一系列值的變量米丘,稱為數(shù)組變量。數(shù)組變量和標(biāo)量變量是以相同的方式聲明的糊啡,唯一的區(qū)別是聲明數(shù)組變量時(shí)變量名后面帶有括號(hào)? ( )拄查。下例聲明了一個(gè)包含 11 個(gè)元素的一維數(shù)組:Dim A(10)

雖然括號(hào)中顯示的數(shù)字是? 10,但由于在 VBScript 中所有數(shù)組都是基于 0 的棚蓄,所以這個(gè)數(shù)組實(shí)際上包含? 11 個(gè)元素堕扶。在基于 0 的數(shù)組中,數(shù)組元素的數(shù)目總是括號(hào)中顯示的數(shù)目加 1梭依。這種數(shù)組被稱為固定大小的數(shù)組稍算。

在數(shù)組中使用索引為數(shù)組的每個(gè)元素賦值。從 0 到 10役拴,將數(shù)據(jù)賦給數(shù)組的元素糊探,如下所示:A(0) = 256

與此類似,使用索引可以檢索到所需的數(shù)組元素的數(shù)據(jù)河闰。

數(shù)組并不僅限于一維科平。數(shù)組的維數(shù)最大可以為 60(盡管大多數(shù)人不能理解超過(guò) 3 或 4? 的維數(shù))。聲明多維數(shù)組時(shí)用逗號(hào)分隔括號(hào)中每個(gè)表示數(shù)組大小的數(shù)字姜性。在下例中瞪慧,MyTable 變量是一個(gè)有 6 行和 11 列的二維數(shù)組:Dim MyTable(5, 10)

在二維數(shù)組中,括號(hào)中第一個(gè)數(shù)字表示行的數(shù)目部念,第二個(gè)數(shù)字表示列的數(shù)目弃酌。

也可以聲明動(dòng)態(tài)數(shù)組,即在運(yùn)行 Script 時(shí)大小發(fā)生變化的數(shù)組儡炼。對(duì)數(shù)組的最初聲明使用Dim語(yǔ)句或ReDim語(yǔ)句妓湘。但是對(duì)于動(dòng)態(tài)數(shù)組,括號(hào)中不包含任何數(shù)字乌询。例如:Dim MyArray()

要使用動(dòng)態(tài)數(shù)組多柑,必須隨后使用ReDim確定維數(shù)和每一維的大小。在下例中楣责,ReDim將動(dòng)態(tài)數(shù)組的初始大小設(shè)置為 25竣灌,而后面的ReDim語(yǔ)句將數(shù)組的大小重新調(diào)整為? 30,同時(shí)使用Preserve關(guān)鍵字在重新調(diào)整大小時(shí)保留數(shù)組的內(nèi)容秆麸。ReDim MyArray(25)

重新調(diào)整動(dòng)態(tài)數(shù)組大小的次數(shù)是沒(méi)有任何限制的初嘹,但是應(yīng)注意:將數(shù)組的大小調(diào)小時(shí),將會(huì)丟失被刪除元素的數(shù)據(jù)沮趣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末屯烦,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子房铭,更是在濱河造成了極大的恐慌驻龟,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件缸匪,死亡現(xiàn)場(chǎng)離奇詭異翁狐,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)凌蔬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門露懒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人砂心,你說(shuō)我怎么就攤上這事懈词。” “怎么了辩诞?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵坎弯,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我译暂,道長(zhǎng)抠忘,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任秧秉,我火速辦了婚禮褐桌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘象迎。我一直安慰自己荧嵌,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布砾淌。 她就那樣靜靜地躺著啦撮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪汪厨。 梳的紋絲不亂的頭發(fā)上赃春,一...
    開(kāi)封第一講書(shū)人閱讀 51,365評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音劫乱,去河邊找鬼织中。 笑死锥涕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的狭吼。 我是一名探鬼主播层坠,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼刁笙!你這毒婦竟也來(lái)了破花?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤疲吸,失蹤者是張志新(化名)和其女友劉穎座每,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體摘悴,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡峭梳,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了烦租。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片延赌。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖叉橱,靈堂內(nèi)的尸體忽然破棺而出挫以,到底是詐尸還是另有隱情,我是刑警寧澤窃祝,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布掐松,位于F島的核電站,受9級(jí)特大地震影響粪小,放射性物質(zhì)發(fā)生泄漏大磺。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一探膊、第九天 我趴在偏房一處隱蔽的房頂上張望杠愧。 院中可真熱鬧,春花似錦逞壁、人聲如沸流济。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)绳瘟。三九已至,卻和暖如春姿骏,著一層夾襖步出監(jiān)牢的瞬間糖声,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蘸泻,地道東北人琉苇。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蟋恬,于是被迫代替她去往敵國(guó)和親翁潘。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1.1 VBA是什么 直到90年代早期,使應(yīng)用程序自動(dòng)化還是充滿挑戰(zhàn)性的領(lǐng)域.對(duì)每個(gè)需要自動(dòng)化的應(yīng)用程序,人們不得...
    浮浮塵塵閱讀 21,745評(píng)論 6 49
  • FreeCodeCamp - Basic JavaScript 寫在前面: 我曾經(jīng)在進(jìn)谷前刷過(guò)這一套題歼争,不過(guò)當(dāng)時(shí)只...
    付林恒閱讀 16,442評(píng)論 5 28
  • 夢(mèng),是什么渗勘?為什么要擁有夢(mèng)? 夢(mèng)沐绒,是一個(gè)人,或一個(gè)民族一個(gè)國(guó)家對(duì)未來(lái)道路的良好幻想旺坠,是實(shí)現(xiàn)人生價(jià)值的目標(biāo)乔遮。夢(mèng),總是...
    彧憶閱讀 154評(píng)論 1 0
  • 永澄老師多次強(qiáng)調(diào)取刃,不要陷入“低水平”的努力蹋肮,不要用戰(zhàn)術(shù)上的勤奮去掩蓋戰(zhàn)略上的懶惰。不要懶于思考璧疗,而僅在行動(dòng)上麻木勤...
    吉吉kiki閱讀 166評(píng)論 0 0
  • 我們時(shí)常會(huì)做一些傻事而不自知坯辩。 人往往就是這樣子,沉迷在自己給自己設(shè)定的框框里崩侠,自我折磨跳不出來(lái)漆魔,...
    吊詭小姐陸月閱讀 315評(píng)論 0 1