首页 > js为什么不建议使用eval()函数?

js为什么不建议使用eval()函数?

书上说eval()函数提供了访问js编译器的机会是什么意思?为什么会产生糟糕的代码?


数据和代码混在一起,就容易出漏洞,就像你把模板和控制器混在一起,就容易被xss。


性能和安全问题~~


http://.com/q/1010000002973097

http://.com/q/1010000002426734

这里不是很多吗?


好像大部分语言都有eval这个函数,且有经验的开发人员都不建议使用。首要一点是,不可控。不可控会带来两点问题:1是不安全,这个大家都知道。2是职责/功能不可控,违背设计原则。至于性能问题,我研究得浅,也只能参考楼上各位的回答了


问题不仅是快或慢

一是安全问题, 然后eval在一些情况下会造成内存泄漏


会运行编译器,影响性能。

弱化安全性,因为被授予太多权利


在JavaScript秘密花园中,专门提到了的

为什么不要使用 eval

在其实可以看出凡是使用eval的地方,我们都能用其他方法代替,而且eval有比较严重的安全问题,它会执行任何传给它的方法


eval 的用法比较奇葩,用起来很麻烦,说不定就遇到坑了。

然而实际上,我们不经意间最常用的就是 eval

比如 script 标签, settimeout, setinterval,new Function, es6 的 import 等等。

【热门文章】
【热门文章】