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

    })
})
相关推荐
zhangxingchao几秒前
AI应用开发二:Embedding与向量数据库
前端·人工智能·后端
Momo__11 分钟前
Vue3 v-memo:长列表渲染的性能核武器
前端·vue.js
Forever7_13 分钟前
弃用 Canvas!高性能2D WebGL 引擎性能提升几十倍!
前端·canvas
李白的天不白14 分钟前
webpack 压缩文件
前端·webpack·node.js
mCell14 分钟前
从云相册的缩略图说起:Bun.Image 让我告别 sharp
javascript·图片资源·bun
Momo__17 分钟前
Electron应用性能优化:从启动慢到秒开的7个实战技巧
前端·electron
西洼工作室42 分钟前
UniApp云开发笔记
前端·笔记·uni-app
zhangxingchao1 小时前
AI应用开发一: AI 编程、大模型调用和 Agent
前端·人工智能·后端
ljt27249606611 小时前
Vue笔记(三)--用户交互
javascript·vue.js·笔记
颖火虫盟主1 小时前
Hello World MCP Server 实现总结
java·前端·python