JavaScript将变量名转换为字符串

时间:2014-10-05 12:36:34

标签: javascript string variables undefined alert

我的功能如下:

function testFunction( option )
{
  alert(option);
}

(实际功能不只是回答选项)

当然,如果您testFunction("qwerty");testFunction(myvar);,其中myvar是变量,则它会有效。

如果testFunction(qwerty);,qwerty不是变量,则无法正常工作。

我想知道是否有办法让功能检查以查看option是变量还是字符串(例如上面示例中的"qwerty"myvar)以及是否它会继续正常并提醒字符串或变量的值。

但是,如果它不是变量或字符串,而是未定义的变量(例如上面示例中的qwerty),那么我希望它提醒变量的名称(qwerty在这种情况下)。

这可能吗?

谢谢!


更多示例:

var myvar = "1234";
testFunction("test"); //alerts "test"
testFunction(myvar);  //alerts "1234"
testFunction(qwerty); //alert "qwerty"

1 个答案:

答案 0 :(得分:1)

你的问题是testFunction(qwerty);甚至不会达到这个功能。

Javascript无法解释变量' qwerty'因为它没有定义,所以它会在那里崩溃。

只是为了好玩,通过捕获当您尝试解释未定义变量时抛出的错误,这里有一种方法来执行您的请求:

function testFunction( option ){
      console.log(option);   
}


try {
    var myvar = "1234";
    testFunction("test"); //alerts "test"
    testFunction(myvar); 
    testFunction(qwerty); //alert "qwerty" 
}catch(e){
    if(e.message.indexOf('is not defined')!==-1){
       var nd = e.message.split(' ')[0];
       testFunction(nd);
    }
}   

JSFiddle here

请记住,绝对不应该这样做,而是尝试在程序中使用现有变量,它会更好用;)