儘管這三個變數都沒有顯式的生命,但vbscript並不在意。這段**能正常的執行,最終會出現乙個對話方塊並顯示數字3。這似乎很方便。但是,這種方便的代價是高昂的。看下乙個例子:
lngfirst = 1
lngsecond = 2
lngthird = lngfirst + lgnsecond
msgbox lngthird
再仔細看一下。您發現第三行中的拼寫錯誤了嗎?在輸入大量的指令碼**時,這是乙個很容易犯的錯誤。麻煩的是拼寫錯誤並不會給vbscript帶來任何麻煩。它會認為這個拼寫錯誤只是乙個新的變數,給它分配記憶體並將其子型別初始化為empty。要vbscript對乙個空變數做數**算,它就會將其視為0。所以這段**執行時,對話方塊顯示的是數字1,而不是您所期望的數字3.
在這個簡單得沒有任何實際意義的指令碼中查詢和修復這個錯誤是很容易的,但是如果指令碼中有成百上千行**呢?如果不是1加2等於3,而是78523.6778262加上2349.25385然後再除以4.97432呢?檢視結果就能發現其中的數學錯誤嗎?如果不行,您甚至不會發覺您的指令碼有錯誤。這在vbscript中是非常現實的問題,可能要過幾周的時間您才會發現這個錯誤——更糟糕的是,可能是您的老闆或客戶發現了這個錯誤。
怎麼才能避免這個問題?答案就是option explicit語句。要做的就是將option eplicit語句放到指令碼的開頭,所有的其他語句之前。這就是告訴vbscript,您的**要求所有的變數在使用之前都必須先顯式的宣告。現在vbscript就不再會允許您在**中不做聲明就引入新的變數。
新增了option explicit語句後,如果嘗試執行這段**,vbscript會終止執行,並提示以下錯誤:variable is undefined: 'lgnsecond'。這是個好訊息,因為現在您就知道要修復這個錯誤。只要使用了option explicit語句,vbscript就會捕獲變數的輸入錯誤。
在asp中Option Explicit 語句
今天遇到乙個問題,option explicit 語句,到網上查了下,大概明白是什麼意思了。在asp中option explicit 語句 用於在檔案級強制對該檔案中的所有變數進行顯式宣告。option explicit 各部分說明 on 可選。啟用 option explicit 檢查。如果在 o...
窗體類中慎用Option Explicit
今天遇到乙個怪病,困擾了我幾個小時,我有一段程式讀取窗體上的切換按鈕狀態,在乙個新檔案中執行得很好,但是同樣乙個按鈕,同樣 貼到另外乙個窗體,卻怎麼也無法正常執行。經過乙個小時的單步跟蹤除錯,終於發現原來問題出在option explicit上。option explicit原來是用於提高程式效能,...
日本語業務単語
最近日本語 一生懸命勉強 教 願 品目 延滯金 大體 無料 鏈結會計 目的 利子 実行 代替品 質問 用途 収入 必要 番號 送付 說明 科目 擔當者 変更 組織 固定 前払 金 事前 記述 含 資產 出力 既存 正常 位置 購買 該當 資料 対応 紹介 実際 帳票 請求書 予定 関係 移動 稅法 ...