关于eval

很多规范说是eval is evil,自己也就人云亦云,没有深究过,但是到底eval是不是evil,看了P84页,其实我本人觉得eval还是不错,只不过有时候有些调皮吧了,当你掌握它的脾气的时候,在某些特定的场合下,应该还是蛮不错的。

避免eval的以下缺点,应该还是不错的东西

不要对eval赋予别名,通过别名调用eval时,会按全局来执行,会覆盖或定义新的全局变量和函数。
尽量在函数中使用eval,将其影响控制在当前函数内。
eval的性能问题,这个取决于实际应用场景

其实我们也可以使用Function构造函数去动态执行代码

var test = new Function(‘name, age’, ‘console.log(name, age)’);
test(‘hjzheng’, 30);

很喜欢知乎上的答案 https://www.zhihu.com/question/20591877

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第2章 基本语法 2.1 概述 基本句法和变量 语句 JavaScript程序的执行单位为行(line),也就是一...
    悟名先生阅读 4,195评论 0 13
  • 工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。简单...
    舟渔行舟阅读 7,827评论 2 17
  • 我基本從來不寫工作的事兒。 因為工作實在沒啥好寫的,不就是工作唄。 然後今天打算稍微寫一點,就寫JS吧。 我一直相...
    LostAbaddon阅读 1,457评论 22 21
  • 面向过程 面向过程的编程中数据通常保存在简单的结构体中(例如C语言的struct),话有一些比较复杂的数据结构,例...
    追沐阅读 300评论 0 0
  • 今日 icj case ✔ memo 写完 ✔ 小学 case ✔ 把11.30睡觉安排进习惯养成 ✔ 把午休控制...
    yuzuru007阅读 142评论 0 0