javascript 在哪里重置计算器中运算符的值?

1l5u6lss  于 2022-12-02  发布在  Java
关注(0)|答案(1)|浏览(108)

bounty将在6天后过期。回答此问题可获得+50声望奖励。Pranav Borse希望吸引更多人关注此问题。
这是我的计算器的现场演示:https://kepplin.github.io/odin-calculator/

在按下等于按钮并显示计算结果后,如果按下数字按钮,则计算器将使用上一次计算的运算符进行计算,而不是开始新的计算。
我有3个全局变量:* num 1 num 2 *、operator。以及先前显示和当前显示。
问题示例(逐步):
12

console.log(num1) // 12
console.log(num2) // 
console.log(operator) //

12岁以上

console.log(num1) // 
console.log(num2) // 12
console.log(operator) // +

十二加四

console.log(num1) // 4
console.log(num2) // 12
console.log(operator) // +

按下“=”按钮后,计算器显示:
16

console.log(num1) // 
console.log(num2) // 16
console.log(operator) // +

计算器会立即计算 * num 1 num 2 * 和 operator 是否有值。如果使用者想要开始不同的计算(例如5 - 4),问题就会出现在这里:
5

console.log(num1) // 5
console.log(num2) // 16
console.log(operator) // +

5个

console.log(num1) //
console.log(num2) // 21
console.log(operator) // -

计算器计算了5 + 16。我希望num 1、num 2和operator的值在计算器计算后如果按下数字按钮则重置为“”(仅适用于数字按钮,而非操作符按钮)。
下面是我想要的行为的一个例子:
https://mike-monta.github.io/calculator-pro/
https://github.com/Mike-Monta/calculator-pro
下面是我的代码:
第一个

nwo49xxi

nwo49xxi1#

单击新数字后,您可以清除num2。typeof num2 !== 'string'检查之前是否对其进行过操作。

function handleNumber(number) {
        if (typeof num2 !== 'string' && operator === '') num2 = ''; // Add this line
        if (num1.length <= 21) {
          num1 += number;
          currentDisplay.textContent = num1;
        }
    }

相关问题