我一直在我的代碼中使用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