将String传递给If语句

时间:2012-11-16 14:18:35

标签: javascript

是否可以将字符串传递给if语句作为创建动态if语句的方法?一个简化的例子是:

var condition = "bool == true";
if(condition) console.log('It is true!);

当然上面的例子不起作用,因为它总是返回true,因为字符串有内容。有没有办法将条件内容注入if语句作为实际参数?条件需要采用字符串格式,因为在实际应用程序中,条件将使用正则表达式从现有HTML块中拉出,因此以字符串格式返回。

仅限香草javascript。

2 个答案:

答案 0 :(得分:1)

if(eval(condition)){

    //do something

}

丹尼尔是对的,这是不好的做法。但是通过字符串命名变量也是不好的做法 - 所以一个跟随另一个......

答案 1 :(得分:0)

eval会起作用,但它很狡猾。

你对这些字符串总是有效的javascript有多大信心?

如果有人欺骗你的应用

,会发生什么?
location.replace('http://stackoverflow.com');

(或更糟)进入那个HTML块?

如果您发现自己需要使用eval,通常意味着您应该重新考虑您的方法。