JavaScript计算器的逻辑是怎么样的?怎么实现?
JavaScript计算器的逻辑是怎么样的?怎么实现?初学js想实践,然后想着做一个计算器,但逻辑不好,输入的数字不知道组合成第一个数,然后运算符+-*/不知道怎么连上第...
JavaScript计算器的逻辑是怎么样的?怎么实现?初学js想实践,然后想着做一个计算器,但逻辑不好,输入的数字不知道组合成第一个数,然后运算符+-*/不知道怎么连上第二个数,因为第二个算还没有输入,还有小数点的数不知道怎么处理,平常的计算器如果不按.它一般的整数,希望大神们能给个小白看得懂的思路
展开
1个回答
2018-05-09 · 知道合伙人软件行家
关注
展开全部
以下简单说下用 JavaScript 编写简单计算器的思路。
一、运算核心
对于 JavaScript 来说,编写一个简单的计算器的核心,是借用 js 提供的 eval 函数,eval 函数可以对给定的字符串表达式执行运算,并返回结果。
举例来说:
s = eval("50+20-30*40/20");
其结果是 10。可以看出,先乘除后加减等运算规则都能正确处理。
二、输入(组合)运算式
核心运算解决后,下一步就是解决如何输入(组合)运算式。
其实也并不复杂,计算器上的符号可以分为4类:
1、0-9 数值
2、% .
3、+ - * /
4、= 退格
除了第 2 类和第 4 类,需要专门处理外,基本上都可以当做字符串处理。即,设置一个全局变量,用于保存用户的输入,当点击时,将值添加进变量字符串的末尾。
当用户点击 “=” 时,调用 eval 函数,计算表达式,并输出结果。
当用户点击“退格”时,删除表达式的最后一个字符。
三、进行界面设计
对于 JS 来说,大多还是要借用 HTML 元素,如 Button 等,样式用 CSS 进行控制。
以下提供相关代码供参考:
<script>
var num = 0; // 定义第一个输入的数据
function jsq(num) {
//获取当前输入
if(num=="%"){
document.getElementById('screenName').value=Math.round(document.getElementById('screenName').value)/100;
}else{
document.getElementById('screenName').value += document.getElementById(num).value;
}
}
function eva() {
//计算输入结果
document.getElementById("screenName").value = eval(document.getElementById("screenName").value);
}
function clearNum() {
//清0
document.getElementById("screenName").value = null;
document.getElementById("screenName").focus();
}
function tuiGe() {
//退格
var arr = document.getElementById("screenName");
arr.value = arr.value.substring(0, arr.value.length - 1);
}
</script>
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询