JavaScript eval() 语法
eval() 是 JavaScript 的一个全局函数,它用于将一个字符串的内容作为 JavaScript 代码执行,并返回运行结果。
语法:
eval(string)说明:
eval() 方法接收单个参数。
string(必选):是一个字符串,该字符串可以包含 JavaScript 表达式、语句等。如果 string 为空字符串,则返回 undefined。
注意: 使用 eval() 来从字符串执行 JavaScript,这会导致巨大的安全风险(如 XSS 跨站脚本攻击)。因此在实际开发中,能不用 eval() 就不用它。如果非要使用,则一定要特别小心。
JavaScript eval() 摘要
| 属于 | JavaScript 全局对象 |
|---|---|
| 使用频率 | 低(应避免使用) |
| 官方文档 | 查看 |
| MDN | 查看 |
JavaScript eval() 示例
接下来,我们通过几个简单的例子来讲解一下 JavaScript eval() 是如何使用的。
示例 1:eval() 执行一个表达式
const str = "10 + 20";
console.log(eval(str));运行结果如下。
30分析:
注意,str 本质上是一个字符串。不过 eval() 函数会自动将其识别为一段 JavaScript 代码,然后来执行。
示例 2:eval() 执行一条语句
const str = "console.log(1+2+3);";
eval(str);运行结果如下。
6示例 3:eval() 执行一段代码
const str = `
const arr = [1, 2, 3, 4, 5];
const result = arr.map(element => element * 2);
console.log(result);
`;
eval(str);运行结果如下。
[ 2, 4, 6, 8, 10 ]示例 4:eval() 执行非代码字符串
const str = "lvyenet";
eval(str);运行结果如下。
(报错)ReferenceError: lvyenet is not defined分析:
在这个例子中,eval() 函数会将 “lvyenet” 视为一个变量。由于该变量未定义,因此这里会报错。
