我一直在我的代码中使用eval,最近我发现可能存在严重的安全问题如果eval()在Javascript中使用。最常见的情况是我使用eval()来组成变量名,然后像这样获取该变量的值;如何从下面的代码中删除eval().... - Javascript
var a = "2" // could be any value
work(a);
function work(a)
{
var l1 = "something";
var l2 = "something else";
var l3 = "something different";
alert(eval("l"+a));
// alerts "something else"
};
是否有任何替代的eval()在这样的情况?
我试过使用窗口[“l”+ a],但只有当变量是全局变量,也是document.getElementById(“l”+ a),并且不起作用。
任何帮助非常感谢。
谢谢, 诺曼。
请注意,当您让用户输入要评估的内容时,'eval'只有*危险*。但这也是不好的做法,在99.9%的情况下可以避免。 – Matchu 2010-07-21 04:56:42