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

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>
相关推荐
-To be number.wan1 小时前
C++ 赋值运算符重载:深拷贝 vs 浅拷贝的生死线!
前端·c++
疯狂的挖掘机1 小时前
记一次基于QT的图片操作处理优化思路(包括在图上放大缩小,截图,画线,取值等)
开发语言·数据库·qt
cnxy1881 小时前
围棋对弈Python程序开发完整指南:步骤4 - 提子逻辑和劫争规则实现
开发语言·python·机器学习
噢,我明白了1 小时前
JavaScript 中处理时间格式的核心方式
前端·javascript
意趣新1 小时前
C 语言源文件从编写完成到最终生成可执行文件的完整、详细过程
c语言·开发语言
纸上的彩虹2 小时前
半年一百个页面,重构系统也重构了我对前端工作的理解
前端·程序员·架构
李艺为2 小时前
根据apk包名动态修改Android品牌与型号
android·开发语言
be or not to be3 小时前
深入理解 CSS 浮动布局(float)
前端·css
黄河滴滴3 小时前
java系统变卡变慢的原因是什么?从oom的角度分析
java·开发语言
LYFlied3 小时前
【每日算法】LeetCode 1143. 最长公共子序列
前端·算法·leetcode·职场和发展·动态规划