javascript - eval()的存在意义
巴扎黑
巴扎黑 2017-04-11 11:02:23
[JavaScript讨论组]

eval()的存在意义是什么?

巴扎黑
巴扎黑

全部回复(10)
伊谢尔伦

个人也认为存在的意义不大,而且就算存在也不应该使用。应该去掉。
可能是早期需要一些反射的特性而遗留下来的吧。

天蓬老师

上面的同学也写了不少了,我就举两个小例子吧。

  1. JQuery的globalEval,这个鼎鼎大名的动态加载js的方法。

  2. 热加载模块代码时可以选用的方法。

当然,这种方式逐渐被淘汰掉了,execScript虽然兼容性不太好但配合动态添加script节点也能解决大部分需求。

阿神

比如你要从主线程往wokers里面传一个函数并执行,正常情况下worker是不允许传递对象的,这个时候你就和可以把需要的函数包到闭包里面,然后转化成字符串就可以传递了,然后在worker线程用eval解析那个闭包,就可以得到那个函数。所以,eval比较适合字符串解析

PHPz

用来解析json格式的数据,很简单吧

阿神

写一些框架的时候就需要了,需要动态的加载并执行一些用户定义的js,比如webcomponent中把js写在script标签中,就需要把js当成字符串来用eval来执行了。

PHPz

这是一个JavaScript的全局函数,使用方法:eval(string),用于计算string这个字符串,并执行其中的JavaScript 代码。比如:

eval('3+4')   //返回7

需要注意的是eval(string)中的string必须是原始的字符串,string里面不能在含有参数,eval()在实际中很少使用

黄舟

eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。

阿神

原生自带的一个函数,用法可以写成eval("("+string+")")

PHP中文网

不建议使用,你就当他不存在吧.

ringa_lee

new Function(string)和这个类似,一般用于处理字符串代码有用。

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

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