如果var存在,则为JavaScript

时间:2011-12-15 23:16:55

标签: javascript if-statement exists var

我想要我的代码,以便如果存在特定的var它将执行一个动作,否则它将被忽略并继续前进。我的代码的问题是,如果特定的var不存在,则会导致错误,可能会忽略JavaScript代码的其余部分。

实施例

var YouTube=EpicKris;

if ((typeof YouTube) != 'undefined' && YouTube != null) {
    document.write('YouTube:' + YouTube);
};

6 个答案:

答案 0 :(得分:7)

try {
  if(YouTube) {
    console.log("exist!");
  }
} catch(e) {}
console.log("move one");

当YouTube不为null,未定义,0或“”时可以正常工作。

这对你有用吗?

答案 1 :(得分:6)

这是一个经典的。

使用“window”限定符对未定义的变量进行跨浏览器检查,不会中断。

if (window.YouTube) { // won't puke
    // do your code
}

来自花生画廊的硬核粘合剂......或

if (this.YouTube) {
    // you have to assume you are in the global context though 
}

答案 2 :(得分:3)

代码:

var YouTube=EpicKris;

if (typeof YouTube!='undefined') {
    document.write('YouTube:' + YouTube);
};

为此制定了最佳方法,使用typeof检查var是否存在。这对我很有用。

答案 3 :(得分:1)

如何使用try/catch

try {
    //do stuff
} catch(e) { /* ignore */ }

答案 4 :(得分:0)

我相信这是你可能正在寻找的东西:

if (typeof(YouTube)!=='undefined'){
    if (YouTube!==undefined && YouTube!==null) {
        //do something if variable exists AND is set
    }
}

答案 5 :(得分:0)

很容易......你可以通过两种方式实现

var YouTube = window["EpicKris"] ;// or this["EpicKris"] or objectContainer["EpicKris"]

if( YouTube ) { //if is null or undefined (Zero and Empty String too), will be converted to false

    console.log(YouTube);// exists

}else{

    consol.log(YouTube);// null, undefined, 0, "" or false

}

或者你可以

var YouTube = window["EpicKris"] ;// or this["EpicKris"] or objectContainer["EpicKris"]

if( typeof YouTube == "undefined" || YouTube == null ) { //complete test

    console.log(YouTube);//exists

}else{

    console.log(YouTube);//not exists

}