可评估字符串作为if语句的一部分?

时间:2013-01-27 15:39:28

标签: javascript if-statement

我想这样:

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>")

但它不起作用。

3 个答案:

答案 0 :(得分: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}

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

答案 1 :(得分:0)

你应该可以使用:

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

但你可能想出一个更好的方法来做到这一点。也许你应该使用一个取值a

的函数代替字符串

答案 2 :(得分:-1)

您可以使用以下代码。我认为这对你的问题有用。

<script lang='javascript'>

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