eval函数
“魔鬼”函数?
如果你现在的代码中使用了eval(),记住该咒语“eval()是魔鬼”。此方法接受任意的字符串,并当作JavaScript代码来处理。当有问题的代码是事先知道的(不是运行时确定的),没有理由使用eval()。eval 用的好不好 其实和使用者的水平有关系
作用域
在eval()中创建的任何变量或函数都不会被提升,因为在解析代码的时候,它们被包含在一个字符串中;它们只在eval()执行的时候创建
为什么不提倡使用eval函数?
- 可读性非常差
- 不好再做优化和编译
- 会轻微增加性能消耗
- 不安全,比如 eval input 的值
直接引用 or 间接引用
var a = 1;
(function(){