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

Evaluable string as part of if statement?

本文关键字:语句 一部分 if 评估 字符串      更新时间:2023-09-26

我想要这样:

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

但它没有用。

你想

做的事情可以使用 - 如评论中提到的 - 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}

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

您应该能够使用:

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

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

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

<script lang='javascript'>
 var b = 2;
var a = 1;
var str = " && b == 2"
if ("a == 1"  + str ) { 
alert("ok");  //do something
}