JavaScript eval() 函数详解

来源:互联网 发布:影视鉴赏网络课答案16 编辑:程序博客网 时间:2024/05/21 19:33

JavaScript eval() 函数详解
eval()函数用于计算并执行以字符串表示的JavaScript代码。eval()函数使JS可以动态执行JavaScript源代码。

eval()函数属于Global对象,所有主流浏览器均支持该函数。
语法eval( code )
参数

参数 描述
这里写图片描述
这里写图片描述
如果参数code中的JavaScript代码不合法,将会引发异常。

返回值:

eval()函数的返回值是任意类型,其返回值由参数code中具体的JavaScript代码决定。

传递给eval()函数的代码执行时所在的上下文和调用eval()函数时的上下文一样(也就是说,作用域不变)。

请自行确认code代码的来源是可信的,否则使用eval()函数存在一定的安全隐患。

示例&说明:

var code = "var x = 18; y = 12; document.writeln(x + y);";eval( code ); // 30code = " 2 + 3";var result = eval( code );document.writeln( result ); // 5code = "[12, 23, 45]";result = eval( code );document.writeln( result ); // 12,23,45code = "{name:\"CodePlayer\", age: 18}";// 必须加小括号,表示强制返回运算结果,否则code中大括号内的代码将会当作代码块执行var o = eval( "(" + code + ")" );document.writeln( o.name ); // CodePlayerfunction test(){    var name = "李四";    // 执行代码字符串时的作用域不变    eval("document.writeln(name);");}test(); // 李四// 代码字符串必须是原始字符串,不能是String对象形式,否则不执行该代码并返回其本身var strObject = new String("document.write('CodePlayer');");var str = eval(strObject);document.writeln(str); // document.write('CodePlayer');
0 0