今天在看代码的时候发现了一个eval函数,不解其意,通过查询之后,终于知道了,下面是我的总结。
eval函数可以将字符串生成语句执行,格式为:eval(coding),类似于sql语句里面的exec()。
如:alert(eval("2+3")); //结果为5,而不是2+3
eval函数传入的参数甚至可以是一个函数,但是eval传入的表达式只能在局部执行,不能全局运行,这时的解决方法如下:
var X2={} //my namespace X2.Eval=function(code){ if(!!(window.attachEvent && !window.opera)){ //ie execScript(code); }else{ //not ie window.eval(code); } }
//此时调用 X2.Eval(codeStr); 就可以全局执行codeStr代码了