我似乎无法考虑如何在不过于复杂的情况下做到这一点。我知道我需要创建一个数组并遍历整个数组并查找运算符(x&/),并且实现BEDMAS也将非常不错。
<div class="display"><input type="text" size="36" id="display" readonly></div>
<div class="keys">
<p>
<input type="button" class="button" value="CE" onclick='backspace()'>
<input type="button" class="button" value="x^2" onclick='power()'>
<input type="button" class="button" value="%" onclick='percentage("%")'>
<input type="button" class="button" value="/" onclick='math("/")'>
</p>
<p>
<input type="button" class="button" value="7" onclick='math("7")'>
<input type="button" class="button" value="8" onclick='math("8")'>
<input type="button" class="button" value="9" onclick='math("9")'>
<input type="button" class="button" value="x" onclick='math("*")'>
</p>
<p>
<input type="button" class="button" value="4" onclick='math("4")'>
<input type="button" class="button" value="5" onclick='math("5")'>
<input type="button" class="button" value="6" onclick='math("6")'>
<input type="button" class="button" value="-" onclick='math("-")'>
</p>
<p>
<input type="button" class="button" value="1" onclick='math("1")'>
<input type="button" class="button" value="2" onclick='math("2")'>
<input type="button" class="button" value="3" onclick='math("3")'>
<input type="button" class="button" value="+" onclick='math("+")'>
</p>
<p>
<input type="button" class="button" value="0" onclick='math("0")'>
<input type="button" class="button" value="." onclick='math(".")'>
<input type="button" class="button" value="C" onclick='c("")'>
<input type="button" class="button" value="=" onclick='e()'>
</p>
function c(val){
document.getElementById("display").value = val;
}
function math(val){
document.getElementById("display").value += val;
}
function e(){
try{
c(eval(document.getElementById("display").value))
}
catch(e){
c('Error')
}
}
function backspace() {
var value = document.getElementById("display").value
document.getElementById("display").value = value.substring(0, value.length
-1);
}
function power() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value * value);
}
function percentage() {
var value = document.getElementById("display").value;
var value = document.getElementById("display").value = (value / 100);
}
最佳答案
是!不要重新发明这个。使用诸如math.js之类的内置表达式解析器。
math.eval(/* put your concatenated expression here */)
关于javascript - 有没有其他方法可以使计算器在没有eval功能的情况下工作?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44125094/