国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

VBScript中變量作用域

2024-05-04 10:58:23
字體:
供稿:網(wǎng)友
下午在寫程序的時候,碰到個變量重定義的問題,具體是在一個函數(shù)中的兩個地方定義了相同的變量,兩個變量分別放在IF語句的兩部分中,本來以為這兩次定義在語句中不同的塊,應(yīng)該沒有影響,然而在運行中IIS卻提示變量重定義,把重復定義去掉即正確。

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

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

下面用一些例子來說明這個問題。
復制代碼 代碼如下:

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

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

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

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

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

您可能感興趣的文章:

JavaScript的變量作用域深入理解關(guān)于javascript 回調(diào)函數(shù)中變量作用域的討論javascript中的變量作用域以及變量提升詳細介紹有關(guān)js的變量作用域和this指針的討論理解JavaScript變量作用域更輕松關(guān)于JavaScript中var聲明變量作用域的推斷js變量作用域及可訪問性的探討Javascript變量作用域詳解ECMAscript 變量作用域總結(jié)概括
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 中方县| 永德县| 民乐县| 花莲市| 崇义县| 临泽县| 平江县| 新安县| 河津市| 武清区| 临潭县| 青铜峡市| 桃园县| 衡阳县| 长岛县| 酒泉市| 淮南市| 永宁县| 弥渡县| 梅河口市| 泽普县| 南木林县| 永康市| 弥勒县| 常德市| 景德镇市| 镇平县| 宣恩县| 宁阳县| 万安县| 孙吴县| 平山县| 元谋县| 东明县| 合阳县| 克拉玛依市| 马关县| 三都| 陆良县| 昭觉县| 天全县|