effective javascript(八)——eval函数
来源:互联网 发布:网络端口怎么看 编辑:程序博客网 时间:2024/04/30 22:19
javascript中的eval函数功能十分强大,错误使用eval函数的方法之一就是允许它干扰作用域。下面来看个例子:
function demo(a) { eval("var b = a"); return b;}demo("hello")// hello
放在eval函数中声明的变量b和直接放在demo函数体中略有不同。只有当eval函数被调用时,eval函数中的var声明语句才会被调用。下面再看一个例子:
var b = "global";function demo(a) { if(a){ eval("var b = 'local';"); } return b;}demo(true)// localdemo(false)// global
eval函数有能改变局部作用域内变量的能力,错误的使用eval函数可能造成一些难以预测的问题。
function demo(b) { var a = 'local'; eval(b); return a;}demo('var a = "eval_local"')// eval_localdemo('var c = "eval_local"')// local
为了避免eval函数改变局部变量,解决办法之一是将eval函数放在一个闭包中。
function demo(b) { var a = 'local'; (function () { eval(b); })(); return a;}demo('var a = "eval_local"')// localdemo('var c = "eval_local"')// local
end…
0 0
- effective javascript(八)——eval函数
- JavaScript学习笔记四——Eval函数
- JavaScript学习笔记四——Eval函数
- matlab—eval函数
- eval()函数(javascript)
- JavaScript 中eval()函数
- JavaScript的eval()函数
- eval()函数(javascript)
- javascript【eval()函数】
- eval()函数(javascript)
- javascript eval函数
- JavaScript eval() 函数
- JavaScript eval() 函数
- javaScript eval()函数用法
- javascript中的eval函数
- JavaScript eval() 函数
- JavaScript eval函数
- JavaScript eval() 函数
- 冒泡排序,选择排序,插入排序
- 解决-安卓分享二维码图片,微信长按无法识别。
- linux 基于秘钥的ssh验证
- Azure MySQL 首次尝试
- JVM学习笔记(五)垃圾收集器
- effective javascript(八)——eval函数
- 蓝桥杯决赛之排日程
- 可复用组件
- 深度卷积神经网络在目标检测中的进展
- 公平锁 非公平锁 使用场景
- 利用C语言绘制余弦函数
- Maven deploy时报Fatal error compiling: tools.jar not found错误的问题处理
- haproxy帮助文档
- 跑马灯-位带操作