字符串中的Javascript If BOOL表达式

字符串中的Javascript If BOOL表达式,javascript,boolean,expression,Javascript,Boolean,Expression,假设我们有这个变量 var x=1; var y=2; var a = "x>y"; 有没有一种方法可以制造出这样的东西 (如果(a){runjscode;}) 。因为这样它不会得到布尔表达式(x>y),它会得到一堆字符(字符串),我知道我可以分离: 左侧表达式 布尔运算符 右表达式 但这对客户端设备来说是一项额外的工作(因为它是javascript) 有没有像“文字字符串”到“布尔表达式”这样的方法,您要查找的是一个,它将字符串计算为JavaScript代码: var x=1;

假设我们有这个变量

 var x=1;
 var y=2;
 var a = "x>y";
有没有一种方法可以制造出这样的东西

(如果(a){runjscode;})

。因为这样它不会得到布尔表达式(x>y),它会得到一堆字符(字符串),我知道我可以分离:

左侧表达式

布尔运算符

右表达式

但这对客户端设备来说是一项额外的工作(因为它是javascript)


有没有像“文字字符串”到“布尔表达式”这样的方法,您要查找的是一个,它将字符串计算为JavaScript代码:

var x=1;
变量y=2;
var a=“x>y”;
如果(评估(a)){
console.log('triggered');
}
否则{
console.log(“未触发”);

}
您要查找的是一个,它对字符串进行计算,以生成JavaScript代码:

var x=1;
变量y=2;
var a=“x>y”;
如果(评估(a)){
console.log('triggered');
}
否则{
console.log(“未触发”);

}
如果(eval(a)),您可以使用
。我没有测试它,但它是
eval
所做的

要检查计算结果是否为布尔表达式,可以编写

if(typeof eval(a) == 'Boolean') {
    console.log("Boolean expression");
}
请注意,不鼓励使用
eval
功能


道格拉斯·克罗克福德(Douglas Crockford)的书《JavaScript:好的部分》(JavaScript:The good parts)是我向每一位JavaScript开发人员极力推荐的,书中有一章是关于它的,标题是“Eval是邪恶的”,这解释了为什么它如此糟糕。但是仅仅是通过标题你就有了一个想法。

如果(eval(a)),你可以使用
。我没有测试它,但它是
eval
所做的

要检查计算结果是否为布尔表达式,可以编写

if(typeof eval(a) == 'Boolean') {
    console.log("Boolean expression");
}
请注意,不鼓励使用
eval
功能


道格拉斯·克罗克福德(Douglas Crockford)的书《JavaScript:好的部分》(JavaScript:The good parts)是我向每一位JavaScript开发人员极力推荐的,书中有一章是关于它的,标题是“Eval是邪恶的”,这解释了为什么它如此糟糕。但是只要看标题,你就会有一个想法。

这个字符串是从哪里来的?此代码是在浏览器中运行还是在服务器上运行?查找
eval
-并注意后果。在浏览器中运行时,让我们认为用户可以拥有某些变量并测试他可以进行的任何布尔表达式,因此他输入例如“x>y+2”的输入,程序应该显示true或false。如果他们用正确的变量放置正确的布尔表达式。我的意思是一个有效的表达,这就是答案,艾萨克,雷纳,版本和黑曜石。如果我能给出正确的答案,每个人都应该得到。但它不允许我这样做,因为我需要再等至少9分钟才能得到正确的答案。从另一方面来说…为什么评估是“邪恶的”"? 如果我能确定它只运行一个有效的布尔表达式,它应该是好的,对吗?这个字符串来自哪里?此代码是在浏览器中运行还是在服务器上运行?查找
eval
-并注意后果。在浏览器中运行时,让我们认为用户可以拥有某些变量并测试他可以进行的任何布尔表达式,因此他输入例如“x>y+2”的输入,程序应该显示true或false。如果他们用正确的变量放置正确的布尔表达式。我的意思是一个有效的表达,这就是答案,艾萨克,雷纳,版本和黑曜石。如果我能给出正确的答案,每个人都应该得到。但它不允许我这样做,因为我需要再等至少9分钟才能得到正确的答案。从另一方面来说…为什么eval是“邪恶的”?如果我能确定它只运行有效的布尔表达式,那应该没问题吧?