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

    })
})
相关推荐
haogexiaole1 小时前
vue知识点总结
前端·javascript·vue.js
哆啦A梦15883 小时前
[前台小程序] 01 项目初始化
前端·vue.js·uni-app
智码看视界4 小时前
老梁聊全栈系列:(阶段一)架构思维与全局观
java·javascript·架构
汉克老师5 小时前
第十四届蓝桥杯青少组C++选拔赛[2023.2.12]第二部分编程题(5、机甲战士)
c++·算法·蓝桥杯·01背包·蓝桥杯c++·c++蓝桥杯
小周同学@5 小时前
谈谈对this的理解
开发语言·前端·javascript
Wiktok6 小时前
Pyside6加载本地html文件并实现与Javascript进行通信
前端·javascript·html·pyside6
一只小风华~6 小时前
Vue:条件渲染 (Conditional Rendering)
前端·javascript·vue.js·typescript·前端框架
柯南二号6 小时前
【大前端】前端生成二维码
前端·二维码
程序员码歌6 小时前
明年35岁了,如何破局?说说心里话
android·前端·后端
博客zhu虎康7 小时前
React Hooks 报错?一招解决useState问题
前端·javascript·react.js