2015-07-02 47 views
0

像假设你有一个像是否可以使用无效变量运行Javascript函数?

function variableFunTime(varname){ 
    console.log("I ran a function, even if the variable was bad"); 
}; 

的功能,你必须变量

var aValidVar = "123"; 
var aValidVar2 = "456"; 

,你运行像

variableFunTime(NopeNotValid); 

用例这个功能也许会一个函数来检查一个变量是否存在或某些东西,但似乎不可能引用一个无效变量而不只是得到一个ReferenceEr ror和函数从不运行。

function IsThisAValidTicket(ticket){ 
    //check if ticket exists and return false if not 
} 

的原因,已被标记为与此相同的其他问题不同的是,从这些定义并不在里面工作的解决方案功能

+3

你是对的。它会抛出一个'ReferenceError',但为什么变量会首先被声明?你能解释一下情况好一点吗,所以我们可以想出一个解决方案? –

+0

是的,我知道如果,但它不起作用,如果功能不运行。 @JosephMarikle我会在问题中添加一个例子。 – Melissa

+0

@Melissa:'typeof'是唯一能够处理未声明变量的东西。如果你正在做其他事情,比如函数调用,它会抛出一个异常。你不会解决这个问题。 – Bergi

回答

0

你可以把它分配给一个有效的变种,并调用功能通过有效的:

var validVar; 

try { 
    validVar = invalidVar; 
} catch (e) {} 

functionToCall(validVar); 
相关问题