我需要从我从脚本中提取的参数动态创建一个变量值的变量。但我首先要检查它是否已经存在,所以我不会覆盖它,如果已经设置的话。
我正在利用eval来扩展变量的值并将其标记为变量后缀,但无论我使用什么来检查未定义的,我都会在检查中收到引用错误。
以下是简单的代码段
chkUser = args[1];
if(typeof eval(chkUser+"lastseen")==="undefined") ;
我也尝试将eval放入parens并将undefined放入''并完全拉出它们并将typeof切换为未定义的JavaScript标准
if( eval(chkUser+"lastseen")=== undefined) ;
但我总是得到ReferenceError:没有定义robertlastseen或chkUser扩展到什么。
答案 0 :(得分:2)
它只是一个猜测,但似乎在你评估它之前没有定义变量。
试试这个Fiddle。
它适用于我。
尝试对变量进行硬编码,然后再评估它:
chkUser = args[1];
var robertlastseen = 'Hardcode';
console.log(eval(chkUser+"lastseen"));
然后你应该能够调试你的代码。
如果您只想测试是否声明了此变量,请尝试:
if(eval('typeof ' + chkUser + 'lastseen') === "undefined"){
//Variable undefined
}