美文网首页
js里关于undefined不同情况的坑

js里关于undefined不同情况的坑

作者: tanclay | 来源:发表于2018-10-07 22:11 被阅读0次
let a 
console.log(a)//undefined
console.log(b)//undefined

第二行是变量已声明但未赋值,第三行则是压根不存在这个玩意,但两种情况log出来都会是undefined,typeof操作也是如此。

实际开发中,可能其中某种情况会被忽略,但有时候这两种情况会产生较大的差异。

例如:

let timer
clearTimeout(timer)//不会报错,代码能继续往下执行
clearTimeout(timer2)//报错,ReferenceError: timer2 is not defined

因此,尽管typeof、console.log等函数去分别调用这两种情况里的变量都不会报错且结果均输出undefined,但是对其他函数则会产生截然不同的结果,有可能因为这个漏洞造成程序的崩溃。

那该怎么避免?

目前我没发现什么好的、简洁的方法去避免这个问题的产生。只能使用try/catch去捕获这里的ReferenceError,如果有更好的方法麻烦告诉我一下,感谢。

相关文章

网友评论

      本文标题:js里关于undefined不同情况的坑

      本文链接:https://www.haomeiwen.com/subject/jupraftx.html