eval与Function
来源:互联网 发布:北京朝阳有线网络电视 编辑:程序博客网 时间:2024/05/01 17:19
在js中两个方法都是比较牛X的方法,他们可以将一段js代码字符串动态的变成已经执行的js代码。设计者肯定不会将一个实现相同目的的方法设计两遍,所以后面就记录一些差异共使用的时候参考。
在javascript模式中有提到“避免使用eval(),一定要使用可以使用new Function()来实现”
因为new Function()中的代码将在一个局部域中运行,不会牵涉到全局变量。(在一个即时函数中使用eval()也可以达到相同目的)
var jsstring="var num=1;console.log(num)";eval(jsstring);//1console.log(typeof num)//numbernew Function(jsstring)();//1console.log(typeof num);//undefined(function(){eval(jsstring)})();//1console.log(typeof num)//undefined
(function(){var num=1;eval("console.log(typeof num);num=2;")console.log(num)})()console.log(typeof num)//number//2//undefined(function(){var num=1;Function("console.log(typeof num);num=2;")()console.log(num)})()console.log(typeof num)//undefined//1//number
注:只用Function和new Function是一样的。
- eval与Function
- eval与new Function()之比较
- Javascript之eval与new Function的差异
- eval 和 new Function
- eval()和Function
- 用eval不如用Function
- window.eval 与eval 区别
- JavaScript之eval、Function、setTimeOut、setInterval
- DataBinder.Eval与Eval的区别
- eval与window.eval的区别
- eval与window.eval的差别
- Bind 与 Eval?
- DataBind()与Eval()
- json与eval
- bind与eval
- json与eval
- eval 与 bind 区别
- JSON.parse() 与 eval()
- showmount: can't get address for localhost
- Rigidbody.ClosestPointOnBounds 到边界框的最近点
- Linux ALSA声卡驱动之六:ASoC架构中的Machine
- 树莓派运行PHP脚本
- 如何诊断Windows CE的应用程序崩溃
- eval与Function
- jQuery插件的开发
- Linux ALSA声卡驱动之七:ASoC架构中的Codec
- Rigidbody.detectCollisions 碰撞检测
- 折半查找
- 在Java下使用DOM来读取/修改Xml文件
- 播放Android项目工程里的视频文件
- linux协议栈skb操作函数
- response 的应用