一、前言

1、定义

eval() 函数计算 JavaScript 字符串,并把它作为脚本代码来执行。

如果参数是一个表达式,eval() 函数将执行表达式。如果参数是Javascript语句,eval()将执行 Javascript 语句。

2、语法

  • eval(string)
参数 描述
string 必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

二、使用

1、实例

执行JavaScript代码或表达式:

eval("x=10;y=20;document.write(x*y)");
document.write("<br>" + eval("2+2"));
document.write("<br>" + eval(x+17));

以上实例输出结果:

200
4
27 

2、笔记1

eval() 是一个危险的函数,它使用与调用者相同的权限执行代码,所以尽可能的不要去使用它,以防被其他人员植入恶意代码,相似的 Function 就不容易被攻击。尽量使用 Function:

Function('"use strict";return (' + obj + ')')();

代替

eval(obj);  // 不建议使用

3、笔记2

eval() 函数里面如果放一个函数需要使用 () 括起来。

let x=eval(`function parse(){console.log("test");}`);
console.log(x);
x();

上面代码没有使用 () 将 eval() 函数中的函数括起来,会报错 x undefined;

let x=eval(`(function parse(){console.log("test");})`);
console.log(x);
x();

上面代码使用 () 将 eval() 函数中的函数括起来,正常运行。