Javascript 作为if语句一部分的可计算字符串?

Javascript 作为if语句一部分的可计算字符串?,javascript,if-statement,Javascript,If Statement,我想要这样: var b = 2 var a = 1 var str = " && b == 2" if (a == 1|str|) { some code } var b = 2 var a = 1 var str = " && b == 2" if (eval("a == 1" + str) { //some code } 我想在代码中放置“str”,我尝试了以下方法: document.write("<script lang='javasc

我想要这样:

var b = 2
var a = 1

var str = " && b == 2"

if (a == 1|str|) { some code }
var b = 2
var a = 1

var str = " && b == 2"

if (eval("a == 1" + str) { //some code }
我想在代码中放置“str”,我尝试了以下方法:

document.write("<script lang='javascript'>" + "if (a == 1" + str + ") { some code }" + "</script>")
document.write(“+”if(a==1”+str+”{some code}“+”)

但它不起作用。

您应该能够使用:

if (eval("a == 1" + str))

但是你可能会想出一个更好的方法。也许您应该使用一个函数来代替字符串,该函数的值为
a

您想做的事情可以使用-如注释中所述-
eval()
,如下所示:

var b = 2
var a = 1

var str = " && b == 2"

if (a == 1|str|) { some code }
var b = 2
var a = 1

var str = " && b == 2"

if (eval("a == 1" + str) { //some code }
然而,eval被认为是一种不好的做法。这是因为很难知道输入到
eval()
的字符串的确切内容,因此无法预测代码将做什么

更好的解决方案可能是使用布尔变量:

var b = 2;
var a = 1;

var bCorrect = (b == 2); // parentheses are not required, but do make it clearer.

if(a ==1 && bCorrect) { // some code}

我希望这有助于您创建一个好的解决方案。祝你好运

您可以使用以下代码。我想它会解决你的问题

<script lang='javascript'>

 var b = 2;
var a = 1;
var str = " && b == 2"
if ("a == 1"  + str ) { 
alert("ok");  //do something
}

var b=2;
var a=1;
var str=“&&b==2”
如果(“a==1”+str){
警惕(“确定”);//做点什么
}

你应该解释更多你想做的事情,因为看起来你肯定在某个地方走错了方向。如果
str
的值保证来自你的代码,请使用
eval()
。为什么要评估脚本字符串?@techfoobar:如果是他的代码,他可以很容易地切换到一个更好的解决方案,而不使用
eval
我正要建议只使用三元运算符,但当我无法确定条件时,我停止了。你到底想达到什么目的?