Javascript eval ReferenceError:未定义

时间:2014-06-02 19:00:21

标签: javascript eval referenceerror

我需要从我从脚本中提取的参数动态创建一个变量值的变量。但我首先要检查它是否已经存在,所以我不会覆盖它,如果已经设置的话。

我正在利用eval来扩展变量的值并将其标记为变量后缀,但无论我使用什么来检查未定义的,我都会在检查中收到引用错误。

以下是简单的代码段

chkUser = args[1];

if(typeof eval(chkUser+"lastseen")==="undefined") ;

我也尝试将eval放入parens并将undefined放入''并完全拉出它们并将typeof切换为未定义的JavaScript标准

if( eval(chkUser+"lastseen")=== undefined) ;

但我总是得到ReferenceError:没有定义robertlastseen或chkUser扩展到什么。

1 个答案:

答案 0 :(得分:2)

它只是一个猜测,但似乎在你评估它之前没有定义变量。

试试这个Fiddle

它适用于我。

尝试对变量进行硬编码,然后再评估它:

chkUser = args[1];
var robertlastseen = 'Hardcode';
console.log(eval(chkUser+"lastseen"));

然后你应该能够调试你的代码。

如果您只想测试是否声明了此变量,请尝试:

if(eval('typeof ' + chkUser + 'lastseen') === "undefined"){
    //Variable undefined
}