JavaScript eval() 函数详解

10 篇文章 0 订阅

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 ); // 30

code = " 2 + 3";
var result = eval( code );
document.writeln( result ); // 5

code = "[12, 23, 45]";
result = eval( code );
document.writeln( result ); // 12,23,45

code = "{name:\"CodePlayer\", age: 18}";
// 必须加小括号,表示强制返回运算结果,否则code中大括号内的代码将会当作代码块执行
var o = eval( "(" + code + ")" );
document.writeln( o.name ); // CodePlayer

function 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');
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值