Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.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 未捕获引用错误:与未定义相比,if语句中未定义MyVariable_Javascript_Undefined - Fatal编程技术网

Javascript 未捕获引用错误:与未定义相比,if语句中未定义MyVariable

Javascript 未捕获引用错误:与未定义相比,if语句中未定义MyVariable,javascript,undefined,Javascript,Undefined,有人知道为什么下面的代码会发生这种情况吗 if(myVarible !=undefined){ myVarible.doSomething() } myVariable是仅在某些页面上使用的全局对象 我相信我在过去做过这件事,而且一直都很有效。 我也试过了 if(!!s){} 我相信我过去也用过 终于让它可以使用if(typeof s!=“undefined”){} 但我想知道为什么未定义变量不等于undefined 为什么它在过去起作用 谢谢改用if(window.myVarible)。如

有人知道为什么下面的代码会发生这种情况吗

if(myVarible !=undefined){ myVarible.doSomething() }
myVariable是仅在某些页面上使用的全局对象 我相信我在过去做过这件事,而且一直都很有效。 我也试过了

if(!!s){}
我相信我过去也用过

终于让它可以使用
if(typeof s!=“undefined”){}

但我想知道为什么未定义变量不等于
undefined
为什么它在过去起作用

谢谢

改用
if(window.myVarible)
。如果您检查变量本身,JavaScript将尝试执行或检查variable1的值,从而产生此错误消息

您还可以使用
if(typeof myVarible!=“undefined”)
,它将只查看变量的类型,而不查看其值



1 JavaScript检查变量值的方式取决于该变量是否作为对象属性写入,如
window.myVar

据我所知,问题是,在某些页面上根本不创建全局
myVarible
变量。 对于此类案例检查

myVarible !== undefined

他们是不平等的。区别在于,只有
typeof
运算符可以处理对名称(例如变量)的不存在引用。当遇到无法解析的引用时,所有其他语言构造都会抛出
ReferenceError
typeof
返回此情况下的字符串
“undefined”

因此,在您的情况下,您应该使用
typeof
操作符或检查全局对象上是否存在
变量
属性

if (window.myVarible) {}

建议:如果(!s){…}有什么问题?另外:请看这里:因为
未定义的
可以重新分配,所以您应该始终检查类型。
if (window.myVarible) {}