eval()的存在意义是什么?
上面的同学也写了不少了,我就举两个小例子吧。
JQuery的globalEval,这个鼎鼎大名的动态加载js的方法。
热加载模块代码时可以选用的方法。
当然,这种方式逐渐被淘汰掉了,execScript
虽然兼容性不太好但配合动态添加script节点也能解决大部分需求。
比如你要从主线程往wokers里面传一个函数并执行,正常情况下worker是不允许传递对象的,这个时候你就和可以把需要的函数包到闭包里面,然后转化成字符串就可以传递了,然后在worker线程用eval解析那个闭包,就可以得到那个函数。所以,eval比较适合字符串解析
这是一个JavaScript的全局函数,使用方法:eval(string),用于计算string这个字符串,并执行其中的JavaScript 代码。比如:
eval('3+4') //返回7
需要注意的是eval(string)中的string必须是原始的字符串,string里面不能在含有参数,eval()在实际中很少使用
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
个人也认为存在的意义不大,而且就算存在也不应该使用。应该去掉。
可能是早期需要一些反射的特性而遗留下来的吧。