将变量设置为undefined时,Microsoft JScript抛出'variable'是未定义的错误

时间:2011-09-14 13:51:36

标签: javascript

我正在将Microsoft JScript中的变量设置为另一个未定义的变量,即

var valid = Page_IsValid;

JScript抛出以下错误

Microsoft JScript运行时错误:'Page_IsValid'未定义

不知怎的,这并没有让我觉得正确。它不应该忽略赋值 - 除了将它赋给变量之外,我不会对Page_IsValid做任何事情。

2 个答案:

答案 0 :(得分:2)

这是正确的行为。只要您的第一个引用是作业(例如var)或firstReference = 'foo';表达式,您就可以引用不带typeof关键字的新变量。这是因为您仍在声明变量,但是作为全局变量。在您的情况下,您尝试在作业的右侧使用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; }

答案 1 :(得分:2)

这是预期的行为,你试图分配一些不存在的东西。 您可以测试Page_IsValid的状态并根据需要进行处理:

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