JavaScript中的动态if语句

阿尤布

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

例:

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

if(condition) {
    alert("succes");
}
泰勒罗珀

eval()可能是更安全的替代方法Function()

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

if(evaluate(condition)) {
    alert("succes");
}

每个MDN:

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章