eval() / Function()
1 var o1 = new function(){
2 return "晶晶";
3 };
4 console.log("o1",JSON.stringify(o1));
5
6
7 var o2 = new function(){
8 this.name = "nick";
9 };
10 console.log("o2",JSON.stringify(o2));
11
12
13 var o3 = new function(){
14 this.name = "xian";
15 return "gege";
16 };
17 console.log("o3",JSON.stringify(o3));
一. function(){} / new function(){}的区别。
二. eval / new Function /(function(){})()
console.log(typeof un);
console.log(typeof deux);
console.log(typeof trois);
var jsstring = "var un = 1; console.log(un);";
eval(jsstring);//1
jsstring = "var deux = 2;console.log(deux);";
new Function(jsstring)();// 2
jsstring = "var trois = 3; console.log(trois);";
(function(){
eval(jsstring); // 3
})()
console.log(typeof un); // number
console.log(typeof deux); // undefined
console.log(typeof trois);// undefined
eval("var arr = [12,3,4];console.log(arr);");// eval() 跟 new Function() 传入字符串
console.log(arr); // [12,3,4]; eval()可以访问和修改它外部的变量,这是Function做不来的!
1 (function(){
2 var local = 1;
3 eval("local = 2; console.log(local)");// 2
4 console.log(local);// 2
5 })();
6
7
8
9 (function(){
10 var local = 1;
11 Function("console.log(typeof local);")();// undefined
12 })();
13
14
15 (function(){
16 var local = 1;
17 eval("console.log(local)");// 1
18 console.log(local);// 1
19 })();
20
21 (function(){
22 var local = 1;
23 Function("console.log(" + local + ");")();// 1
24 })();
eval() 与 JSON数据格式- 需要加上() 将代码块转为表达式
疯癫不成狂,有酒勿可尝;世间良辰美,终成水墨白。