84669 person learning
152542 person learning
20005 person learning
5487 person learning
7821 person learning
359900 person learning
3350 person learning
180660 person learning
48569 person learning
18603 person learning
40936 person learning
1549 person learning
1183 person learning
32909 person learning
我大体知道这个函数会做什么,但还是不清楚它到底有什么用,想了解一下它的应用场景
业精于勤,荒于嬉;行成于思,毁于随。
对 eval 的态度应该是:学习它,并远离它。
AJAX 中当服务器端通过这种方式访问数据给请求者的时候:
echo '{"error":0;"msg":"OK"}';
客户端的 Javascript 可以这样获取:
eval("var result=" + ajaxResponseContent); //其中 ajaxResponseContent = {"error":0;"msg":"OK"}
接着可以这样判断:
if (result.error != 0) {/*.....*/}
1 eval函数的原义是 使之执行 这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
假设后台输出json字符串response 前台使用 var json = eval("(" + response + ")");
var json = eval("(" + response + ")");
如果严谨点 我们可以加一个判断
var jsonData = "";
if (typeof (data) === "string" && data != "null") { if (data == "") data = "{}"; jsonData = eval("(" + data + ")"); }
2 这时 我们认为 eval的作用就是将json string转为js对象
我支持避免使用eval,故而可以说它没什么应用场景。 能够用eval实现的功能都可以用替代的方式实现(不是我说的,但是我同意) 比如JSON.parse(JSON对象解析),比如new Function()(执行特定代码)
大部分不支持使用eval的原因有: 1、性能不好 2、不安全 3、产生混乱的代码逻辑
对 eval 的态度应该是:学习它,并远离它。
AJAX 中当服务器端通过这种方式访问数据给请求者的时候:
客户端的 Javascript 可以这样获取:
接着可以这样判断:
1 eval函数的原义是 使之执行 这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
假设后台输出json字符串response 前台使用
var json = eval("(" + response + ")");
如果严谨点 我们可以加一个判断
if (typeof (data) === "string" && data != "null") { if (data == "") data = "{}"; jsonData = eval("(" + data + ")"); }
2 这时 我们认为 eval的作用就是将json string转为js对象
我支持避免使用eval,故而可以说它没什么应用场景。 能够用eval实现的功能都可以用替代的方式实现(不是我说的,但是我同意) 比如JSON.parse(JSON对象解析),比如new Function()(执行特定代码)
大部分不支持使用eval的原因有: 1、性能不好 2、不安全 3、产生混乱的代码逻辑