蓝桥杯(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;
        }

    })
})
相关推荐
小雨青年6 小时前
MateChat 进阶实战:打造零后端、隐私安全的“端侧记忆”智能体
前端·华为·ai·华为云·状态模式
勇气要爆发6 小时前
问:ES5和ES6的区别
前端·ecmascript·es6
永不停歇的蜗牛7 小时前
Maven的POM文件相关标签作用
服务器·前端·maven
芳草萋萋鹦鹉洲哦7 小时前
【vue/js】文字超长悬停显示的几种方式
前端·javascript·vue.js
HIT_Weston7 小时前
47、【Ubuntu】【Gitlab】拉出内网 Web 服务:Nginx 事件驱动分析(一)
前端·ubuntu·gitlab
开发者小天7 小时前
React中的 闭包陷阱
前端·javascript·react.js
翔云 OCR API8 小时前
承兑汇票识别接口技术解析-开发者接口
开发语言·前端·数据库·人工智能·ocr
涔溪8 小时前
Vue3 的核心语法
前端·vue.js·typescript
国服第二切图仔8 小时前
Electron for 鸿蒙pc项目实战之tab标签页组件
javascript·electron·harmonyos·鸿蒙pc
G***E3168 小时前
前端在移动端中的React Native Web
前端·react native·react.js