javascript - js为什么不建议使用eval()函数?
阿神
阿神 2017-04-10 16:58:15
[JavaScript讨论组]

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

阿神
阿神

闭关修行中......

全部回复(8)
黄舟

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

为什么不要使用 eval

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

天蓬老师

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

黄舟

http://segmentfault.com/q/1010000002973097

http://segmentfault.com/q/1010000002426734

这里不是很多吗?

黄舟

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

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

迷茫

问题不仅是快或慢

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

PHPz

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

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

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

高洛峰

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

ringa_lee

性能和安全问题~~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号