2011-09-14 52 views
0

我Microsoft JScript中一個變量設置爲另一個變量是未定義的,當未定義的錯誤即微軟的JScript拋出「變量」是設定變量未定義

變種有效= Page_IsValid;

JScript中引發以下錯誤

微軟JScript運行時錯誤:「Page_IsValid」未定義

不知怎的,這並不讓我最正確的。它不應該忽略這個任務 - 除了將它分配給變量之外,我不會對Page_IsValid做任何事情。

+0

你能告訴我們你的腳本。我似乎沒有這個問題。它可能是'Page_IsValid'超出了範圍?編輯:啊..我看到當你說「變量是未定義的」你的意思是「未定義的變量」,而不是「變量的值是未定義的」。哇。我的閱讀理解今天很怪異。 – ZenMaster

回答

2

這是正確的行爲。只要您的第一個引用是一個賦值(例如,firstReference = 'foo';)或typeof表達式,就可以引用不包含var關鍵字的新變量。這是因爲你仍然聲明變量,但是作爲一個全局變量。就你而言,你試圖在作業的右側使用Page_IsValid,但解釋者不知道該如何處理它,因爲它在任何地方都沒有被挖掘過。

如果你不確定是否會Page_IsValid已申報或沒有,你可以做這樣的事情:

// kind of funky to set the value to undefined, but this ensures 
// that Page_IsValid has been properly "declared" 
if (typeof Page_IsValid === 'undefined') { Page_IsValid = undefined; } 
2

這是預期的行爲,你試圖分配的東西不存在。 您可以測試的Page_IsValid的狀態,並把它處理neccesary:

var valid = (typeof Page_IsValid !== 'undefined') ? Page_IsValid : <default value>;