tjuking / blog

前端知识积累

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

关于ReferenceError

tjuking opened this issue · comments

commented

定义

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");