关于ReferenceError
tjuking opened this issue · comments
定义
ReferenceError表示的是引用了不存在的对象(查看MDN文档说明)
触发场景
一般情况下,引用一个变量之前,我们会先声明这个变量。下面这段代码就不会抛出ReferenceError。
var me;
//...
if(me){
//...
}
或者:
if(me){
//...
}
var me;//声明会提前
如果变量没有声明,引用变量则ReferenceError就会被抛出。如下面这段代码:
if(me){
//...
}
或者:
(function(){
var me;//闭包环境中
//...
})();
if(me){
//...
}
注意事项
在判断全局变量是否存在时,需要注意不能使用直接引用判断这种方式:
console && console.log("支持console");//在不支持console的浏览器中会报错
应该去检查console
变量是否挂在window
对象下:
window.console && console.log("支持console");
或者:
"console" in window && console.log("支持console");