0

我想要这样:

var b = 2
var a = 1

var str = " && b == 2"

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

我想将“str”放在代码中,我试过这个:

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

但它没有用。

4

3 回答 3

2

您可以使用 - 就像评论中提到的那样 - 来完成您想要做的事情eval(),就像这样:

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}

我希望这可以帮助您创建一个好的解决方案。祝你好运!

于 2013-01-27T15:49:23.593 回答
0

您应该能够使用:

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

但是您可能会想出一个更好的方法来做到这一点。也许你应该使用一个取值的函数而不是字符串a

于 2013-01-27T15:47:34.403 回答
-1

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

<script lang='javascript'>

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

于 2013-01-27T16:02:51.007 回答