我需要根据我从脚本中提取的参数中的变量值动态创建一个变量。但我首先想检查它是否已经存在,这样如果它已经设置了,我就不会覆盖它。
我利用 eval 来扩展变量的值并将其标记到变量后缀上,但无论我使用什么来检查未定义,我都会在检查时收到引用错误。
下面是简单的代码片段
chkUser = args[1];
if(typeof eval(chkUser+"lastseen")==="undefined") ;
我还尝试将 eval 放在括号中,并将 undefined 放入“”中,然后将它们完全拉出,并将 typeof 切换为 JavaScript 标准 undefined
if( eval(chkUser+"lastseen")=== undefined) ;
但我总是得到 ReferenceError: robertlastseen is not Defined 或者 chkUser 扩展到什么。
最佳答案
这只是一个猜测,但似乎在评估变量之前尚未定义该变量。
试试这个Fiddle .
对我来说效果很好。
在像这样评估变量之前尝试对变量进行硬编码:
chkUser = args[1];
var robertlastseen = 'Hardcode';
console.log(eval(chkUser+"lastseen"));
然后您应该能够调试您的代码。
如果您只想测试此变量是否已声明,请尝试以下操作:
if(eval('typeof ' + chkUser + 'lastseen') === "undefined"){
//Variable undefined
}
关于Javascript eval 引用错误 : is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24001442/