JavaScript中的动态if语句

Ayo*_*b k 3 javascript

无论如何,是否将字符串转换为if语句中的条件:

例:

var condition = "a == b && ( a > 5 || b > 5)";

if(condition) {
    alert("succes");
}
Run Code Online (Sandbox Code Playgroud)

Tyl*_*per 5

eval()可能是更安全的选择Function()

var condition = "4 == 4 && ( 10 > 5 || 9 > 5)";
var evaluate = (c) => Function(`return ${c}`)();

if(evaluate(condition)) {
    alert("succes");
}
Run Code Online (Sandbox Code Playgroud)

每个MDN:

eval()是一个危险的函数,它以调用者的特权执行它传递的代码。如果运行eval()的字符串可能会受到恶意方的影响,则最终可能会在您的网页/扩展名许可的情况下在用户计算机上运行恶意代码。更重要的是,第三方代码可以看到eval()被调用的范围,从而可能以类似Function方式不易受到攻击的方式导致可能的攻击。