blu*_*eby 4 javascript undefined
有谁知道为什么这会发生在下面的代码
if(myVarible !=undefined){ myVarible.doSomething() }
Run Code Online (Sandbox Code Playgroud)
myVariable是一个全局对象,仅在某些页面上使用我确信我过去已经完成了这个并且它总是有效.我也试过了
if(!!s){}
Run Code Online (Sandbox Code Playgroud)
我也确信我过去曾使用过.
终于搞定了 if(typeof s!=="undefined"){}
但我想知道为什么未定义的变量不等于undefined
它,为什么它在过去有用?
谢谢
根据我的理解,问题是,在某些页面上你根本不创建全局myVarible变量.对于此类案件检查
myVarible !== undefined
Run Code Online (Sandbox Code Playgroud)
和
typeof myVarible !== "undefined"
Run Code Online (Sandbox Code Playgroud)
不平等.不同之处在于,只有typeof运营商才能处理对名称(例如变量)的不存在的引用.ReferenceError遇到无法解析的引用时,所有其他语言结构都会抛出.typeof返回"undefined"此案例的字符串.
因此,在您的情况下,您应该使用typeof运算符或检查variable全局对象上属性的存在.
if (window.myVarible) {}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3220 次 |
| 最近记录: |