一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP教程 - VBScript中變量作用域

VBScript中變量作用域

2019-10-23 12:21asp技術網 ASP教程

下午在寫程序的時候,碰到個變量重定義的問題,具體是在一個函數中的兩個地方定義了相同的變量,兩個變量分別放在IF語句的兩部分中,本來以為這兩次定義在語句中不同的塊,應該沒有影響,然而在運行中IIS卻提示變量重定

下午在寫程序的時候,碰到個變量重定義的問題,具體是在一個函數中的兩個地方定義了相同的變量,兩個變量分別放在IF語句的兩部分中,本來以為這兩次定義在語句中不同的塊,應該沒有影響,然而在運行中IIS卻提示變量重定義,把重復定義去掉即正確。 

解決了問題之后突然想到在Fdream的blog看過一篇文章《JavaScript變量無塊級作用域》,似乎這兩個是差不多的,在VBScript中變量同樣沒有塊級作用域。 

再次去看了那篇文章之后我也做了下試驗,得到結果:在VBScript中,函數中定義的變量的作用域是整個函數,而不是塊級,不管這個變量是在函數中哪個位置定義的。因此,函數中一個變量不管在函數的哪個位置定義,它在整個函數中都可以使用。 

下面用一些例子來說明這個問題。 

復制代碼代碼如下:


Option Explicit 
Sub foo() 
    Dim var 
    var="hello,world!" 
    MsgBox var 
End Sub 
Call foo() 


下面的代碼跟上面的代碼等效,但是var的定義放在了函數的最后:

復制代碼代碼如下:


Option Explicit 
Sub foo() 
    var="hello,world!" 
    MsgBox var 
    Dim var 
End Sub 
Call foo() 


下面的例子說明變量不管在哪定義,在整個函數中都是可以使用的,當然如果把定義的位置放的特殊一點有利于代碼的清晰,閱讀起來比較方便,修改時也比較方便。

復制代碼代碼如下:


Option Explicit 
Sub foo() 
    Dim var1 
    var1="YES" 
    MsgBox "var1: "&var1&vbCrLf&"var2: "&var2 
    IF var1="YES" Then 
        Dim var2 
        var2="NO" 
    End IF 
    MsgBox "var1: "&var1&vbCrLf&"var2: "&var2 
End Sub 
Call foo() 


在ASP開發中,寫一個函數時通常的做法是變量到用時才定義,雖然變量的作用域與定義的位置無關,不過我覺得還是寫在變量使用之前比較好,以后改起代碼來比較方便,不至于修改了一段代碼之后還要翻到函數頭去修改變量定義。 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 王者荣耀瑶白色液体 | 国产日日操 | ai换脸明星专区在线观看 | 欧美巨吊 | 扒开黑女人p大荫蒂老女人 扒开大腿狠狠挺进视频 | 国产经典一区二区三区蜜芽 | 5g影院成人 | 高清国产精品久久久久 | 国产思妍小仙女一二区 | 好大用力深一点视频 | 久久久精品国产免费A片胖妇女 | a级影视| xxxxxx性受 | 亚洲AV精品一区二区三区不卡 | 国产精品免费小视频 | 成人四虎 | 四虎国产精品免费久久久 | 免费观看二十女人一摸是水 | 日本精品www色 | 倩女还魂在线观看完整版免费 | 日韩免费观看成第15集 | www在线观看视频免费 | 五月天综合久久 | 男人天堂网站在线 | 4455永久在线视频观看 | 我与白丝同桌的故事h文 | 大胆人gogo888体艺术在线 | 特色特色大片在线 | 久热这里只有精品99国产6 | 日本人交换乱理伦片 | 国产成人一区二区三区视频免费蜜 | 九九九好热在线 | 亚洲天堂网在线观看视频 | 暴露狂婷婷 | 久久国产影院 | 亚洲 欧美 国产 在线 日韩 | 午夜香蕉成视频人网站高清版 | 日本视频高清免费观看xxx | 男人躁女人过程 | 欧美日韩在线一区 | 出a级黑粗大硬长爽猛视频 吃胸膜奶视频456 |