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
我正要建议只使用三元运算符,但当我无法确定条件时,我停止了。你到底想达到什么目的?