gpt4 book ai didi

javascript - 如何从以下代码中删除 eval() .... - Javascript

转载 作者:行者123 更新时间:2023-11-30 07:06:36 25 4
gpt4 key购买 nike

我一直在我的代码中使用 eval,我最近发现如果在 Javascript 中使用 eval() 可能会出现严重的安全问题。最常见的情况是我使用 eval() 来组成一个变量名,然后像这里一样获取该变量的值;

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() ??

我试过使用 window["l"+a] 但只有当变量是全局变量和 document.getElementById("l"+a) 时才有效,但它也不起作用。

非常感谢任何帮助。

谢谢,诺曼。

最佳答案

也许使用对象或数组:

var obj = {
'1' : 'something',
'2' : 'something else',
'foo' : 'entirely different'
};
// access like this:
obj[1]; // "something"
obj['foo']; // "entirely different"
var key = 'foo';
obj[key]; // "entirely different"

或者,作为一个数组:

var arr = [
"something",
"something else",
"something different"
];
arr[0] // something
arr[1] // something else

关于javascript - 如何从以下代码中删除 eval() .... - Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3296392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com