您的位置:首页 > Web前端 > JavaScript

javaScript 工作必知(五) eval 的使用

2016-05-29 10:05 471 查看

eval

    eval(parse) parse :里面跟参数字符串,我们知道执行javascript 会编译执行,

改变全局变量的值:

      

var x = 2; //定义的全局变量
alert(x);//2
var g = eval("x=3"); //eval 会根据当前上下文解析x
alert(x);//3


   在全局作用域引用eval,改变全局作用域的值,不改变局部作用域的值

var g = eval; //全局引用eval
var x = "global";//定义全局变量
(function f() {
var x = "local";
g("x+='changed'");
alert(x);//局部变量local
})();//IIFE 立即执行表达式
alert(x);//全局变量的值globalchanged


   在局部作用域内引用改变局部变量的值,不改变全局变量的值

var g = eval; //全局引用eval
var x = "global";//定义全局变量
(function f() {
var x = "local";
eval("x+='changed'");
alert(x);//局部变量localchanged
})();//IIFE 立即执行表达式
alert(x);//全局变量的值global 


summary

 eval 执行会根据上下文来判断改变的变量时局部的还是全局的,所以使用eval函数,关键是看清引用eval的作用域!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: