是否可以将字符串传递给if语句作为创建动态if语句的方法?一个简化的例子是:
var condition = "bool == true";
if(condition) console.log('It is true!);
当然上面的例子不起作用,因为它总是返回true,因为字符串有内容。有没有办法将条件内容注入if语句作为实际参数?条件需要采用字符串格式,因为在实际应用程序中,条件将使用正则表达式从现有HTML块中拉出,因此以字符串格式返回。
仅限香草javascript。
答案 0 :(得分:1)
if(eval(condition)){
//do something
}
丹尼尔是对的,这是不好的做法。但是通过字符串命名变量也是不好的做法 - 所以一个跟随另一个......
答案 1 :(得分:0)
eval
会起作用,但它很狡猾。
你对这些字符串总是有效的javascript有多大信心?
如果有人欺骗你的应用
,会发生什么?location.replace('http://stackoverflow.com');
(或更糟)进入那个HTML块?
如果您发现自己需要使用eval
,通常意味着您应该重新考虑您的方法。