Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么未定义的全局变量会引发异常,而通过窗口访问则不会?_Javascript - Fatal编程技术网

Javascript 为什么未定义的全局变量会引发异常,而通过窗口访问则不会?

Javascript 为什么未定义的全局变量会引发异常,而通过窗口访问则不会?,javascript,Javascript,行为 我有一个名为InfoPanel的全局变量。如果我试图通过InfoPanel引用未定义的文件,它会因未定义而引发未捕获的引用错误。但是,如果我通过window.InfoPanel引用它,它会像预期的那样返回未定义的 问题 为什么InfoPanel!==未定义的引发异常,但window.InfoPanel!==未定义的是否按预期工作 对于询问代码的用户:这是因为当您尝试全局访问InfoPanel时,它会尝试查找不存在的变量。所以它会抛出一个异常 执行window.InfoPanel操作时,它试

行为

我有一个名为
InfoPanel
的全局变量。如果我试图通过
InfoPanel
引用未定义的
文件,它会因未定义而引发未捕获的引用错误。但是,如果我通过
window.InfoPanel
引用它,它会像预期的那样返回
未定义的

问题

为什么
InfoPanel!==未定义的
引发异常,但
window.InfoPanel!==未定义的
是否按预期工作


对于询问代码的用户:

这是因为当您尝试全局访问
InfoPanel
时,它会尝试查找不存在的变量。所以它会抛出一个异常

执行
window.InfoPanel
操作时,它试图访问对象属性(
window
对象的
InfoPanel
属性)


第二个表单不会引发异常。

为什么会有否决票?因为您描述的代码没有显示出来。显示足够的代码,以便有人能够重现您描述的错误情况。InfoPanel!==如果未声明,undefined将抛出,在这种情况下,您没有声明的InfoPanel变量。@BilltheLizard我不明白为什么需要更多代码。这不是一个关于任何特定代码的问题,而是关于可变访问的问题,我已经展示了我所经历的两种方式。请将您的代码直接放在您的问题中,而不是放在另一个站点的链接后面(不是每个人都可以访问)。啊,我认为这是有意义的。我会接受这个答案,一旦它让我。我试图找到更多的资源,这样我可以有一个更丰富的答案。