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
相关推荐
fangzhanpeng1686 天前
快速掌握C#语言基础知识点(1.基础数据类型)
开发语言·c#·1024程序员节
无己心8 天前
面向多平台 AI 搜索引擎的适配层架构设计
前端·人工智能·搜索引擎·ai·1024程序员节
u01030552714 天前
AI驱动的安卓UI自动生成功能实现
人工智能·1024程序员节
u01030552715 天前
长株潭智能体赋能腾讯元器链接共享
1024程序员节
云贝贝贝16 天前
OceanBase认证体系介绍与备考指南
运维·服务器·oceanbase·1024程序员节
u01030552716 天前
Java图像处理实战指南
人工智能·1024程序员节
u01030552717 天前
Java AWT鼠标事件全解析
人工智能·1024程序员节
u01030552719 天前
Java实用类应用精讲
人工智能·1024程序员节
u01030552719 天前
Java I/O核心操作实战
人工智能·1024程序员节
u01030552720 天前
ArrayList操作详解与实战应用
人工智能·1024程序员节