Javascript eval ReferenceError: is not defined



我需要动态地创建一个变量的值从一个变量的参数,我从一个脚本拉进来。但我首先要检查它是否已经存在,这样我就不会覆盖它,如果它已经设置了。

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

下面是简单的代码片段
chkUser = args[1];
if(typeof eval(chkUser+"lastseen")==="undefined") ;

我也试过把eval放在parents中,把undefined放在' '中,然后把它们完全拉出来,把typeof切换到JavaScript标准的undefined,比如

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

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

这只是一个猜测,但似乎变量只是没有定义之前,你求值。

试试这个小提琴

这对我来说很好。

在像这样求值之前,尝试对变量进行硬编码:

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

那么你应该能够调试你的代码。

如果你只是想测试这个变量是否被声明,试试这个:

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

最新更新