eval()函数的用法,计算字符串中的值,模板字符串进行计算

eval函数的定义:

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

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

javascript 复制代码
let a1 = 10;
let a2 = 20;
let calculate1 = 'a1 + a2';
console.log(eval(calculate1)) // 30

这个一眼就看到eval函数是将字符串中的值作为js代码来运行了,所以得出来是30。

但是如果表达式是后端传递给我们的,并且参与运算的是 对象类型那么就需要将后端传递给我们的字符串先转变为模板字符串,也就是两边增加一个 `` 此时在运行的时候他只会将${}中的值解析出来,就停止运算了,需要再调用一次eval 来进一步运算就能得到想要的值了

下边这种做法是当计算的是对象中的属性值并且运算方法是后端定义的的时候的用法

javascript 复制代码
let obj1 = {
  num1:30,
  num2:40
}
let calculate2 = '${obj1.num1} + ${obj1.num2}';
//先将字符串转变为模板字符串
calculate2 = '`' + calculate2  + '`'
console.log(eval(calculate2)) // 30 + 40
//此时只是将js表达式运行出来了,并没有将做下一步运算,我们重新再调用一次 eval函数
let  sum = eval(calculate2) // 70
相关推荐
学传打活37 分钟前
【边打字.边学昆仑正义文化】_21_爱的结晶(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
数据皮皮侠AI7 天前
顶刊同款!中国地级市风灾风险与损失数据集(2000-2022)|灾害 / 环境 / 经济研究必备
大数据·人工智能·笔记·能源·1024程序员节
Fab1an8 天前
Busqueda——Hack The Box 靶机
linux·服务器·学习·1024程序员节
技术专家8 天前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
学传打活11 天前
古代汉语是源,现代汉语是流,源与流一脉相承。
微信公众平台·1024程序员节·汉字·中华文化
学传打活16 天前
【边打字.边学昆仑正义文化】_19_星际生命的生存状况(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
unable code23 天前
[HNCTF 2022 WEEK2]ez_ssrf
网络安全·web·ctf·1024程序员节
unable code24 天前
[NISACTF 2022]easyssrf
网络安全·web·ctf·1024程序员节
unable code25 天前
BUUCTF-[第二章 web进阶]SSRF Training
网络安全·web·ctf·1024程序员节
开开心心就好1 个月前
进程启动瞬间暂停工具,适合调试多开
linux·运维·安全·pdf·智能音箱·智能手表·1024程序员节