我正在将Microsoft JScript中的变量设置为另一个未定义的变量,即
var valid = Page_IsValid;
JScript抛出以下错误
Microsoft JScript运行时错误:'Page_IsValid'未定义
不知怎的,这并没有让我觉得正确。它不应该忽略赋值 - 除了将它赋给变量之外,我不会对Page_IsValid做任何事情。
答案 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>;