判分标准
实现重置(AC)功能,得 1 分。
实现计算式子和结果显示功能,得 3 分。
实现计算功能,得 6 分。
应该按要求来就行吧,,一开始还在想是否要考虑小数点个数的问题还有式子是否有效……
笔记:
- 判断元素的id直接用.id
- 用eval('string')实现将字符串的式子进行计算
- 使用了Math.sqrt()
- 用replaceAll对字符串中字符进行替换
循环遍历也可以用事件委托
代码:
// 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.valuecont = cont.replaceAll('x','*');cont = cont.replaceAll('÷','/');result.value = eval(cont)}else{//更新显示框formula.value+=item.innerText;}})
})