【发布时间】:2018-04-20 23:40:18
【问题描述】:
我想问一下是否可以使用字符串编写一个 if 语句并以某种方式将其转换为真实的语句?
我希望我可以像if(c==c) 一样使用"c==c"。
这可能吗?
var c=1;
var aa= "c==c";
if(aa) {
console.log("abc")
}
【问题讨论】:
-
也许是
eval()的一个用例。但是,请务必阅读使用eval()(例如,this thread)的安全隐患。 -
你能解释一下你的潜在问题吗?
eval被广泛贬低,有一些很好的理由。但它或它的亲属(函数构造函数)是唯一的方法来做到这一点。也许有一些更好的方法来处理您的潜在问题。 -
你的字符串if语句的结构会像“c==c”这样吗?还是像“c!=c”这样的其他形式?
-
如前所述,
eval()可以为您做到这一点,但几乎在每种情况下,当我们找到真正问题的根源时,我们都可以找到替代解决方案,因为eval === evil。 我希望我可以像 if(c==c) 一样使用“c==c” - 你为什么希望这样? -
这是一个简单的例子。我想做这样的事情来输入像
"people[i].a". But I'm not sure if it's possible to do it witheval()`这样的JSON对象`