为什么使用JavaScript eval函数是一个坏主意?eval函数是一种动态生成代码的强大而简单的方法,那么有什么警告呢?
4 回答
萧十郎
TA贡献1815条经验 获得超13个赞
评估并不总是邪恶的。有时候它非常合适。
然而,eval目前和历史上大量过度使用,他们不知道自己在做什么。不幸的是,这包括编写JavaScript教程的人,在某些情况下,这确实会带来安全后果 - 或者更常见的是简单的错误。因此,我们越多可以在eval上抛出问号,就越好。每当你使用eval时,你需要理智地检查你正在做什么,因为你可能会做得更好,更安全,更清洁。
举一个非常典型的例子,设置一个id存储在变量'potato'中的元素的颜色:
eval('document.' + potato + '.style.color = "red"');
如果上面那种代码的作者对JavaScript对象的工作原理有了线索,他们就会意识到可以使用方括号而不是文字点名,从而避免了对eval的需求:
document[potato].style.color = 'red';
...这更容易阅读,也不那么潜在的错误。
(但是,有人/他/他/他们知道他们在做什么会说:
document.getElementById(potato).style.color = 'red';
这比直接从文档对象访问DOM元素的狡猾的旧技巧更可靠。)
摇曳的蔷薇
TA贡献1793条经验 获得超6个赞
添加回答
举报
0/150
提交
取消