1. 介绍
- eval函数接受一个字符串参数
- 参数可为字符串形式的js代码;例如: ‘const a = 1,b =2;console.log(a+b)’
- 获取作用域(当前作用域或者当前作用域往上,参考获取变量)的变量(var、let、const、function)
2.使用
- 字符串js代码
eval('const a = 1,b =2;console.log(a+b)') // 3
- 变量形式
const test = { name: 'name' };
console.log(eval('test')) // {name: 'name'}
3. 函数形式
const fn = (name) => {
console.log(`${name}:fn执行了`)
}
eval('fn')('李四说')
3. 缺点
- 如果从接口处获取可执行的js代码,然后以eval运行可能会被攻击者利用
- 与with一样,性能堪忧。