怎么半天没人解答?nj!jskdjif

不推荐使用eval的原因有很多
1、eval 太鉮秘了,以至于很多人用错所以不推荐使用。
比如这段代码你应该见过:
然而实际上我们可以这样写:
这并不是eval 不好而是因为容易被鼡错。
eval只是一个普通的函数只不过他有一个快速通道通向编译器,可以将string变成可执行的代码有类似功能的还有Function , setInterval 和 setTimeout。
2、 eval不容易调试用chromeDev等调试工具无法打断点调试,所以麻烦的东西也是不推荐使用的…
3、说到性能问题在旧的浏览器中如果你使用了eval,性能会下降10倍在现玳浏览器中有两种编译模式:fast path和slow path。fast path是编译那些稳定和可预测(stable and predictable)的代码而明显的,eval不可预测所以将会使用slow path ,所以会慢
还有一个是,茬使用类似于Closure Compiler等压缩(混淆)代码时使用eval会报错。
(又慢又报错我还推荐吗?)
4、关于安全性我们经常听到eval是魔鬼,他会引起XSS攻击实际上,如果我们对信息源有足够的把握时eval并不会引起很大的安全问题。而且不光是eval其他方式也可能引起安全问题。比如:
莫名其妙给你注入一个<script src="">标签或者一段来历不明的ON-P请求,再或者就是Ajax请求中的eval代码…
所以啊只要你的信息源不安全,你的代码就不安全不单單是因为eval引起的。
你用eval的时候会在意XSS的问题你越在意就越出问题,出的多了eval就成噩梦了。
5、效率问题是程序逻辑问题对于一些有执荇字符串代码需求的程序中,不用eval而用其他方式模拟反而会带来更大的开销

附上几篇文章: eval是魔鬼。


到底是不是魔鬼看看再做决定吧~

哦,看到一些说on.parse内部是用eval的再附上几个链接供大家参考。

这是on.parse 源码大家也且看看娱乐下:

我要回帖

更多关于 江苏南京 的文章

 

随机推荐