9

有没有办法将字符串转换为表达式?

我的字符串:var1 == null && var2 != 5

我想用这个字符串作为 , 的if()条件if(var1 == null && var2 != 5)

4

5 回答 5

17

使用eval. 这会做

if (eval(" var1 == null && var2 != 5"))
{
}
于 2013-02-06T09:28:43.560 回答
7

一种选择是创建并调用new Function

var strExpr = "var1 == null && var2 != 5";
if (new Function("return " + strExpr)()) {
    // ...
}
于 2013-02-06T09:26:58.250 回答
2

要查看 eval 的工作原理,只需在控制台中编写:

console.log(eval("1==1"));
console.log(eval("1==2"));

这将输出真假

于 2013-02-06T09:27:44.227 回答
0

1.) Java 和 Javascript 没有太多共同点,但名称和一些语法继承自 C。

2.)无论如何,你通常应该避免你正在尝试做的事情。在大多数语言和情况下,由于安全问题,不应使用这种做法。

于 2013-02-06T09:28:15.493 回答
0

String() 函数将对象的值转换为字符串,可以做 eval(String)

<html>
<head>
<script>
function myFunction(){
    var var1 = new String("999 888");
    var var2 = "5";
    var var3;
    var var4 = 8;
    document.write(String(var2)+ "<br>");
    document.write(String(var4)+ "<br>");

    //5
    //8

    if(var3 === undefined && var2 != 6){
            alert('var1='+var1+' var2='+var2);
    }
    var ev=eval(String(var3 === undefined && var2 != 6));
    alert(ev);

    var ev1=eval("var3 === undefined && var2 != 6");
    alert(ev1);

}
</script>
</head>
<body>
<button onclick="myFunction()">Try it</button>
</body>
</html>

试试看,祝你好运!

于 2013-02-06T09:57:26.200 回答