当前位置: 首页 > article >正文

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

 eval函数的定义:

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

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

let a1 = 10;
let a2 = 20;
let calculate1 = 'a1 + a2';
console.log(eval(calculate1)) // 30

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

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

下边这种做法是当计算的是对象中的属性值并且运算方法是后端定义的的时候的用法。因为后端传递给我们的是一个字符串。

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


http://www.kler.cn/news/107622.html

相关文章:

  • CTF-Crypto学习记录-第四天 “ “ --- SHA1安全散列算法,实现原理。
  • mac安装并使用wireshark
  • Rust实现基于Tokio的限制内存占用的channel
  • 【C++】类与对象 第二篇(构造函数,析构函数,拷贝构造,赋值重载)
  • 前端小技巧: 实现 LRU 缓存算法功能
  • Kafka-Java四:Spring配置Kafka消费者提交Offset的策略
  • vue如何使用路由拦截器
  • 数据结构 C语言 2.1 线性表抽象数据类型 2.2 小议顺序表
  • Tp框架如何使用事务和锁,还有查询缓存
  • Linux UWB Stack实现——FiRa会话状态机
  • jmeter疑难杂症
  • 数据库数据恢复—Oracle数据库报错ORA-01110错误的数据恢复案例
  • Hive 常用DML操作
  • 前端移动web高级详细解析二
  • 安装虚拟机(VMware)保姆级教程及配置虚拟网络编辑器和安装WindowsServer以及宿主机访问虚拟机和配置服务器环境
  • 实体店做商城小程序如何
  • 模数转换器-ADC基础
  • 深入探究深度学习、神经网络与卷积神经网络以及它们在多个领域中的应用
  • Android-宝宝相册(第四次作业)
  • 【计算机网络】(谢希仁第八版)第一章课后习题答案
  • 软考 系统架构设计师系列知识点之设计模式(9)
  • ES6之Set集合(通俗易懂,含实践)
  • 外卖霸王餐系统 支持小程序,分站合作
  • 关于pycharm中句号变成点的问题
  • Redis 与 MySQL 一致性 实现方案
  • RSA:基于小加密指数的攻击方式与思维技巧
  • SpringCore完整学习教程5,入门级别
  • 单元测试Testng
  • vue中如何获取当时时间时分秒
  • “第五十三天”