蓝桥杯(Web大学组)2022国赛真题:用什么来做计算 A

判分标准

实现重置(AC)功能,得 1 分。

实现计算式子和结果显示功能,得 3 分。

实现计算功能,得 6 分。

应该按要求来就行吧,,一开始还在想是否要考虑小数点个数的问题还有式子是否有效......

笔记:
  1. 判断元素的id直接用.id
  2. 用**eval('string')**实现将字符串的式子进行计算
  3. 使用了Math.sqrt()
  4. 用replaceAll对字符串中字符进行替换

循环遍历也可以用事件委托

代码:
javascript 复制代码
// TODO:请补充代码


let formula = document.querySelector('#formula');
let result = document.querySelector('#result');
let btn = document.querySelectorAll('.calc-button');
btn.forEach((item,index)=>{
    item.addEventListener('click',()=>{
        //通过判断id显示

        //清空
        if(item.id==='reset'){     //重置       
            formula.value='';
            result.value = '';
        }
        else if(item.id === 'sqrt'){//'开方'
            // BUG: eval(formula.value)是在Math.sqrt里面!
            result.value = Math.sqrt(eval(formula.value))
        }
        else if(item.id==='equal'){//'='
            //用cont存放式子,将乘除符号转换,输出结果
            let cont = formula.value
            cont = cont.replaceAll('x','*');
            cont = cont.replaceAll('÷','/');
            result.value = eval(cont)
        }
        else{
            //更新显示框
            formula.value+=item.innerText;
        }

    })
})
相关推荐
雾削木1 小时前
stm32解锁芯片
javascript·stm32·单片机·嵌入式硬件·gitee
2301_768350232 小时前
Vue第二期:组件及组件化和组件的生命周期
前端·javascript·vue.js
小周同学:2 小时前
Vue项目中将界面转换为PDF并导出的实现方案
javascript·vue.js·pdf
华洛3 小时前
公开一个AI产品的商业逻辑与设计方案——AI带来的涂色卡自由
前端·后端·产品
明远湖之鱼3 小时前
opentype.js 使用与文字渲染
前端·svg·字体
90后的晨仔4 小时前
Vue 3 组合式函数(Composables)全面解析:从原理到实战
前端·vue.js
今天头发还在吗4 小时前
【React】TimePicker进阶:解决开始时间可大于结束时间的业务场景与禁止自动排版
javascript·react.js·ant design
今天头发还在吗4 小时前
【React】动态SVG连接线实现:图片与按钮的可视化映射
前端·javascript·react.js·typescript·前端框架
小刘不知道叫啥4 小时前
React 源码揭秘 | suspense 和 unwind流程
前端·javascript·react.js
szial4 小时前
为什么 React 推荐 “不可变更新”:深入理解 React 的核心设计理念
前端·react.js·前端框架