eval()函数可计算某个字符串,并执行其中的的JavaScript 代码,eval可以将字符串生成语句执行
eval函数是强大的数码转换引擎,字符串经eval转换后得到一个javascript对象
eval(string)
string参数 必需,要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句
返回值,通过计算 string 得到的值(如果有的话)。
说明:该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。
因此请不要为 eval() 函数传递 String 对象来作为参数。 如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,
并通过该属性调用它,则 ECMAScript 实现允许抛出一个EvalError 异常。
1.<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
var x=10
document.write(eval(x+17))
</script>
输出:
200 4 27
2.var myeval = eval;
myeval("2+3"); // 可能会抛出 EvalError 异常
3.
var a = eval("5");等效于var a = 5;
var a = eval("'5'");等效于var a = '5';
var obj = eval(“({name:'cat',color:'black'})”);等效于 var obj = {name:’cat’,color:’black’};
eval("alert('hello world!');");等效于 alert('hello world!');
4.
后台传给前台一个Json数据如
{“id”:1,”name”:”zhangsan”,”age”:30,”address”:”beijing”}
前台这样写
function(returnedData,status){
var people = returnedData;
alert(people);
var id = people.id;
var name = people.name;
var age = people.age;
var address = people.address;
}
如上这样写得话,取到的returnedData是一个字符串而不是一个对象,所以下面取不到对象的属性
如果将 var people = eval(“(“+returnedData+”)”);
即可将people转换成一个对象,也就取得对象的属性了
eval函数是强大的数码转换引擎,字符串经eval转换后得到一个javascript对象
eval(string)
string参数 必需,要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句
返回值,通过计算 string 得到的值(如果有的话)。
说明:该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。
因此请不要为 eval() 函数传递 String 对象来作为参数。 如果试图覆盖 eval 属性或把 eval() 方法赋予另一个属性,
并通过该属性调用它,则 ECMAScript 实现允许抛出一个EvalError 异常。
1.<script type="text/javascript">
eval("x=10;y=20;document.write(x*y)")
document.write(eval("2+2"))
var x=10
document.write(eval(x+17))
</script>
输出:
200 4 27
2.var myeval = eval;
myeval("2+3"); // 可能会抛出 EvalError 异常
3.
var a = eval("5");等效于var a = 5;
var a = eval("'5'");等效于var a = '5';
var obj = eval(“({name:'cat',color:'black'})”);等效于 var obj = {name:’cat’,color:’black’};
eval("alert('hello world!');");等效于 alert('hello world!');
4.
后台传给前台一个Json数据如
{“id”:1,”name”:”zhangsan”,”age”:30,”address”:”beijing”}
前台这样写
function(returnedData,status){
var people = returnedData;
alert(people);
var id = people.id;
var name = people.name;
var age = people.age;
var address = people.address;
}
如上这样写得话,取到的returnedData是一个字符串而不是一个对象,所以下面取不到对象的属性
如果将 var people = eval(“(“+returnedData+”)”);
即可将people转换成一个对象,也就取得对象的属性了