码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • eval()函数的用法,计算字符串中的值,模板字符串进行计算


     eval函数的定义:

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

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

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

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

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

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

    1. let obj1 = {
    2. num1:30,
    3. num2:40
    4. }
    5. let calculate2 = '${obj1.num1} + ${obj1.num2}';
    6. //先将字符串转变为模板字符串
    7. calculate2 = '`' + calculate2 + '`'
    8. console.log(eval(calculate2)) // 30 + 40
    9. //此时只是将js表达式运行出来了,并没有将做下一步运算,我们重新再调用一次 eval函数
    10. let sum = eval(calculate2) // 70

  • 相关阅读:
    电子签名-为你的数据签字画押
    Flink 运行时架构(三)
    PTA天梯赛训练 7-8 查验身份证 (15分)
    护网(HVV)技术详解:网络安全演习的核心技能要求
    ElasticSearch7.3学习(二十一)----Filter与Query对比、使用explain关键字分析语法
    React之组件实例的三大属性之rel
    构建LVS集群
    cookie
    网络初识——JavaEE
    selenium上传文件时打开指定本地文件路径
  • 原文地址:https://blog.csdn.net/qq_43807473/article/details/134020716
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号