Javascript 将字符串转换为表达式

Javascript 将字符串转换为表达式,javascript,Javascript,有没有办法将字符串转换为表达式 我的字符串:var1==null&&var2!=5 我想将此字符串用作if()的条件,就像if(var1==null&&var2!=5)一个选项是创建并调用新函数: var strExpr = "var1 == null && var2 != 5"; if (new Function("return " + strExpr)()) { // ... } 要了解eval的工作原理,只需在控制台中编写: console.log(eval("1

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

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


我想将此字符串用作
if()
的条件,就像
if(var1==null&&var2!=5)

一个选项是创建并调用
新函数

var strExpr = "var1 == null && var2 != 5";
if (new Function("return " + strExpr)()) {
    // ...
}

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

console.log(eval("1==1"));
console.log(eval("1==2"));
这将输出true和false。Java和Javascript没有太多共同之处,但是名称和一些语法继承自C


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

使用
eval
。这就行了

if (eval(" var1 == null && var2 != 5"))
{
}
函数的作用是:将对象的值转换为字符串,您可以执行eval(String)


函数myFunction(){
var var1=新字符串(“999 888”);
var var2=“5”;
var var3;
var4=8;
编写(字符串(var2)+“
”; 编写(字符串(var4)+“
”; //5 //8 if(var3==未定义&&var2!=6){ 警报('var1='+var1+'var2='+var2); } var ev=eval(字符串(var3==undefined&&var2!=6)); 警报(ev); var ev1=eval(“var3==undefined&&var2!=6”); 警报(ev1); } 试试看

试试看,祝你好运

Java和JavaScript不一样!您需要使用eval()函数,但要注意作用域。在这种情况下如何使用eval()?该字符串是从哪里获得的?在字符串中包含可执行代码被认为是一种代码味道。请记住,eval是一种安全的方法。这种方法比eval更安全,如果您需要重复调用它,则速度要快得多。新函数会遇到与eval类似的安全性和性能问题。
<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>