判分标准
实现重置(AC)功能,得 1 分。
实现计算式子和结果显示功能,得 3 分。
实现计算功能,得 6 分。
应该按要求来就行吧,,一开始还在想是否要考虑小数点个数的问题还有式子是否有效......
笔记:
- 判断元素的id直接用.id
- 用**eval('string')**实现将字符串的式子进行计算
- 使用了Math.sqrt()
- 用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;
}
})
})