最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

VBScript中變量作用域

 更新時(shí)間:2007年02月27日 00:00:00   作者:  
下午在寫程序的時(shí)候,碰到個(gè)變量重定義的問題,具體是在一個(gè)函數(shù)中的兩個(gè)地方定義了相同的變量,兩個(gè)變量分別放在IF語句的兩部分中,本來以為這兩次定義在語句中不同的塊,應(yīng)該沒有影響,然而在運(yùn)行中IIS卻提示變量重定義,把重復(fù)定義去掉即正確。

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

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

下面用一些例子來說明這個(gè)問題。
復(fù)制代碼 代碼如下:

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

下面的代碼跟上面的代碼等效,但是var的定義放在了函數(shù)的最后:
復(fù)制代碼 代碼如下:

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

下面的例子說明變量不管在哪定義,在整個(gè)函數(shù)中都是可以使用的,當(dāng)然如果把定義的位置放的特殊一點(diǎn)有利于代碼的清晰,閱讀起來比較方便,修改時(shí)也比較方便。
復(fù)制代碼 代碼如下:

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開發(fā)中,寫一個(gè)函數(shù)時(shí)通常的做法是變量到用時(shí)才定義,雖然變量的作用域與定義的位置無關(guān),不過我覺得還是寫在變量使用之前比較好,以后改起代碼來比較方便,不至于修改了一段代碼之后還要翻到函數(shù)頭去修改變量定義。

相關(guān)文章

最新評(píng)論

尼玛县| 云南省| 武汉市| 突泉县| 定安县| 桂林市| 姜堰市| 岢岚县| 泌阳县| 沁水县| 陵川县| 徐闻县| 吴川市| 崇礼县| 无棣县| 安丘市| 天水市| 屏东县| 鄂托克旗| 无极县| 清原| 射阳县| 西城区| 镇巴县| 尉氏县| 葫芦岛市| 石景山区| 麦盖提县| 潼关县| 钦州市| 金门县| 迁安市| 瑞金市| 固始县| 安平县| 改则县| 建阳市| 南丰县| 阿坝| 江门市| 黔东|