我想要我的代码,以便如果存在特定的var它将执行一个动作,否则它将被忽略并继续前进。我的代码的问题是,如果特定的var不存在,则会导致错误,可能会忽略JavaScript代码的其余部分。
实施例
var YouTube=EpicKris;
if ((typeof YouTube) != 'undefined' && YouTube != null) {
document.write('YouTube:' + YouTube);
};
答案 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
}