通过动态获取后端数据判断输入的值打小

eval() 函数在 JavaScript 中是一个非常强大的函数

【1】计算简单公式

很多时候如果需要动态的提供计算的公式,需要写一大段的公式计算逻辑去兼容,可能耗费大量的开发成本。为了快速了解 eval 的用法,直接 ① 打开浏览器;② F12 键控制台输入即可验证;

【2】计算混合简单运算

这里的混合简单运算指的是 加减乘除取模运算 增加对应的混合优先级括号()中括号[] 进行运算,注意此处常规计算的大括号" { }" 不被计算在内。

【3】调用自定义函数执行

这里是一个很妙,很危险,很谨慎的一种做法,可以算得上是一个弊端了。一起来看看吧(完整演示代码如下):

案例1:直接调用函数字符串执行

复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        const b = 80;
        //  1 >    2 >=     3 <     4 <=
        const fh = {
            1: '>',
            2: '>=',
            3: '<',
            4: '<=',

        }
        const arr = [
            {
                min: 0,
                a1: 1,
                b1: 3,
                max: 60,
                label: 'dengli'
            },
            {
                min: 60,
                a1: 2,
                b1: 3,
                max: 80,
                label: 'jige'
            },
            {
                min: 80,
                a1: 2,
                b1: 4,
                max: 100,
                label: 'gfl'
            }
        ]
        const resultArray = [];
        let resultStr = '';
        for (let i = 0; i < arr.length; i++) {
            const item = arr[i];
            const jkeyjson = {
                a2: `${b}${fh[item.a1]}${item.min} && ${b}${fh[item.b1]}${item.max}`,
                a1: eval(`${b}${fh[item.a1]}${item.min} && ${b}${fh[item.b1]}${item.max}`),
                label: item.label

            };
            let bb = ''
            if (fh[item.a1] && !fh[item.b1]) {
                bb = `${b}${fh[item.a1]}${item.min}`
            } else if (!fh[item.a1] && fh[item.b1]) {
                bb = `${b}${fh[item.b1]}${item.max}`
            } else {
                bb = `${b}${fh[item.a1]}${item.min} && ${b}${fh[item.b1]}${item.max}`

            }
            item.bb = bb;
            item.cc = (eval(bb));

            if (eval(bb)) {
                resultStr = item.label;
                break;
            }
            resultArray.push(jkeyjson)
        }
        console.log(resultArray, 'resultArray');
        console.log(arr, 'arr');
        console.log(resultStr, 'resultStr');
    </script>
</body>

</html>
相关推荐
前端 贾公子3 分钟前
ElementUI 中 validateField 对部分表单字段数组进行校验时多次回调问题
前端·javascript·elementui
棒棒的唐4 分钟前
vue2 elementUI 登录页面实现回车提交登录的方法
前端·javascript·elementui
前端小万7 分钟前
一次紧急的现场性能问题排查
前端·性能优化
一只乔哇噻9 分钟前
java后端工程师进修ing(研一版 || day41)
java·开发语言·学习·算法
钮钴禄·爱因斯晨19 分钟前
深入剖析LLM:从原理到应用与挑战
开发语言·人工智能
excel22 分钟前
为什么相同卷积代码在不同层学到的特征完全不同——基于 tfjs-node 猫图像识别示例的逐层解析
前端
知识分享小能手23 分钟前
React学习教程,从入门到精通,React 使用属性(Props)创建组件语法知识点与案例详解(15)
前端·javascript·vue.js·学习·react.js·前端框架·vue
用户214118326360225 分钟前
dify案例分享-免费玩转即梦 4.0 多图生成!Dify 工作流从搭建到使用全攻略,附案例效果
前端
CodeSheep26 分钟前
稚晖君又开始摇人了,有点猛啊!
前端·后端·程序员
JarvanMo28 分钟前
Flutter Web vs Mobile:主要区别以及如何调整你的UI
前端