search

Home  >  Q&A  >  body text

很多人说 JavaScript eval 方法不好,为什么不取消

经常见建议避免使用 eval 方法,但是它的一直存在是不是有无法替代的作用呢?

伊谢尔伦伊谢尔伦2902 days ago575

reply all(7)I'll reply

  • 高洛峰

    高洛峰2017-04-10 14:50:40

    好像是不推薦,但實際的應用測試卻讓人大跌眼鏡,給個傳送們: http://blog.zhaojie.me/2012/08/js-code-from-eval-benchmark.html

    reply
    0
  • 阿神

    阿神2017-04-10 14:50:40

    现实世界的重要特征之一就是无法做到不好的东西说取消就能取消

    reply
    0
  • PHPz

    PHPz2017-04-10 14:50:40

    不好不意味着必须取消,举个例子,某些语言中的goto语法,也一直都是不被建议使用的东西,但却一直存在。
    不建议使用是因为这些东西的使用容易带来风险,但当你对它足够熟悉足够谨慎的话它就能够体现它得天独厚的优势了。

    reply
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-10 14:50:40

    如果没有了 eval() 和new Function(...),javascript 还能叫脚本语言吗?本来脚本语言最强大的特性就是数据和代码能互相转换,结果你想给去了……

    大多数时候不用,是因为不好驾驭,不是因为没用啊。

    reply
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:50:40

    eval在性能上的影响不好说,但是很容易成为攻击的入口

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:50:40

    有时候缺点就是优点

    reply
    0
  • PHPz

    PHPz2017-04-10 14:50:40

    在 stackoverflow 看到兩句話:

    eval() is evil. Even if targeting a browser where eval(uneval(o)); works I would definitely avoid that technique.

    另一句是回復:

    Eval is not evil. Using eval poorly is. If you are afraid of its side effects you are using it wrong. The side effects you fear are the reasons to use it. Did any one by the way actually answer your question?

    reply
    0
  • Cancelreply