判断变量是否存在时需要注意的问题

如果以变量是否存在作为判断条件,当变量不存在时,浏览器会抛出错误,也就是说,不能判断不存在的变量

1 if(abc){alert(1321)};
2 VM513:1 Uncaught ReferenceError: abc is not defined
3     at <anonymous>:1:4

有很多种写法可以避免这种错误,下面是几种常见的写法

1.将判断变量转化为判断window属性是否存在

1 if(window.abc){console.log('fine')};
2 undefined

2.有时window并不是全局对象,这是可以用this代替全局对象

1 if(this.abc){console.log('fine')};
2 undefined

3.将变量存在性判断转化为变量是否定义(块中的定义会别提升)

1 if(abc==undefined){var abc;};
2 undefined
原文地址:https://www.cnblogs.com/frontendnotes/p/6437533.html