Uncaught ReferenceError: myVarible is not defined in if statement comparing to undefined
Uncaught ReferenceError: myVarible is not defined in if statement comparing to undefined
有谁知道为什么下面的代码会发生这种情况
if(myVarible !=undefined){ myVarible.doSomething() }
myVariable 是一个全局对象,仅在某些页面上使用
我确信我过去做过这个并且它总是有效。
我也试过了
if(!!s){}
我也确定我过去用过。
终于让它与 if(typeof s!=="undefined"){}
一起工作
但我想知道为什么未定义的变量不等于 undefined
为什么它在过去有效?
谢谢
改用if(window.myVarible)
。如果您检查变量本身,JavaScript 将尝试执行或检查变量 1 的值,这反过来会产生此错误消息。
您也可以使用 if(typeof myVarible !== "undefined")
,它只会查看变量的类型而不查看其值。
1JavaScript检查变量值的方式取决于该变量是否被写为对象属性 喜欢 window.myVar
或不喜欢。
据我了解,问题是在某些页面上您根本没有创建全局 myVarible
变量。
对于这种情况检查
myVarible !== undefined
和
typeof myVarible !== "undefined"
不相等。不同之处在于,只有 typeof
运算符可以处理不存在的名称引用(例如变量)。当遇到无法解析的引用时,所有其他语言构造都会抛出 ReferenceError
。 typeof
returns 本例的字符串 "undefined"
。
因此,在您的情况下,您应该使用 typeof
运算符或检查全局对象上是否存在 variable
属性。
if (window.myVarible) {}
有谁知道为什么下面的代码会发生这种情况
if(myVarible !=undefined){ myVarible.doSomething() }
myVariable 是一个全局对象,仅在某些页面上使用 我确信我过去做过这个并且它总是有效。 我也试过了
if(!!s){}
我也确定我过去用过。
终于让它与 if(typeof s!=="undefined"){}
但我想知道为什么未定义的变量不等于 undefined
为什么它在过去有效?
谢谢
改用if(window.myVarible)
。如果您检查变量本身,JavaScript 将尝试执行或检查变量 1 的值,这反过来会产生此错误消息。
您也可以使用 if(typeof myVarible !== "undefined")
,它只会查看变量的类型而不查看其值。
1JavaScript检查变量值的方式取决于该变量是否被写为对象属性 喜欢 window.myVar
或不喜欢。
据我了解,问题是在某些页面上您根本没有创建全局 myVarible
变量。
对于这种情况检查
myVarible !== undefined
和
typeof myVarible !== "undefined"
不相等。不同之处在于,只有 typeof
运算符可以处理不存在的名称引用(例如变量)。当遇到无法解析的引用时,所有其他语言构造都会抛出 ReferenceError
。 typeof
returns 本例的字符串 "undefined"
。
因此,在您的情况下,您应该使用 typeof
运算符或检查全局对象上是否存在 variable
属性。
if (window.myVarible) {}