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

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>
相关推荐
一大树6 分钟前
Vue3 开发必备:20 个实用技巧
前端·vue.js
Ashlee_code9 分钟前
什么是Web3?金融解决方案
开发语言·金融·架构·eclipse·web3·区块链·php
颜渊呐10 分钟前
uniapp中APPwebview与网页的双向通信
前端·uni-app
Evand J22 分钟前
【MATLAB例程】AOA与TDOA混合定位例程,适用于三维环境、4个锚点的情况,附下载链接
开发语言·matlab
机器视觉知识推荐、就业指导22 分钟前
Qt 与Halcon联合开发八: 结合Qt与Halcon实现海康相机采图显示(附源码)
开发语言·数码相机·qt
10年前端老司机23 分钟前
React 受控组件和非受控组件区别和使用场景
前端·javascript·react.js
夏晚星23 分钟前
vue实现微信聊天emoji表情
前端·javascript
停止重构25 分钟前
【方案】前端UI布局的绝技,响应式布局,多端适配
前端·网页布局·响应式布局·grid布局·网页适配多端
極光未晚26 分钟前
TypeScript在前端项目中的那些事儿:不止于类型的守护者
前端·javascript·typescript
ze_juejin27 分钟前
Vue3 + Vite + Ant Design Vue + Axios + Pinia 脚手架搭建
前端·vue.js