有没有办法将字符串转换为表达式?
我的字符串:var1 == null && var2 != 5
我想将此字符串用作if()
的条件,例如if(var1 == null && var2 != 5)
答案 0 :(得分:13)
使用eval
。这样做
if (eval(" var1 == null && var2 != 5"))
{
}
答案 1 :(得分:3)
一种选择是创建并调用new Function
:
var strExpr = "var1 == null && var2 != 5";
if (new Function("return " + strExpr)()) {
// ...
}
答案 2 :(得分:2)
要了解eval的工作原理,只需在控制台中写一下:
console.log(eval("1==1"));
console.log(eval("1==2"));
这将输出true和false
答案 3 :(得分:0)
1。)Java和Javascript没有太多共同之处,但是名称和一些语法都是从C继承的。
2.。)无论如何,你通常应该避免你想要做的事情。在大多数语言和案例中,由于安全问题,不应使用此做法。
答案 4 :(得分: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>
试试吧,祝你好运!