簡體   English   中英

JavaScript 中的計算器有重置按鈕問題

[英]Calculator in JavaScript problem with reset button

我的任務是做一個計算 2 個數字的計算器,並為加分一個重置按鈕,但我很困惑,因為我無法讓它正常工作

 let n1 = document.getElementById("num1").innerText = Number(prompt("N1")) let n2 = document.getElementById("num2").innerText = Number(prompt("N2")) let changeR = document.getElementById("result") function add(){ let sum = n1 + n2 changeR.innerText = sum } function sub(){ let sum = n1 - n2 changeR.innerText = sum } function mult(){ let sum = n1 * n2 changeR.innerText = sum } function divi(){ let sum = n1 / n2 changeR.innerText = sum } function rest() { let sum = 0 console.log(sum) changeR.innerText = sum let n1 = document.getElementById("num1").innerText = Number(prompt("N1")) let n2 = document.getElementById("num2").innerText = Number(prompt("N2")) }
 <h1>Numbers</h1> <p id="num1"></p> <p id="num2"></p> <hr> <h1>Result:<span id="result"></h1> <hr> <button onclick="add()">+</button> <button onclick="sub()">-</button> <button onclick="mult()">*</button> <button onclick="divi()">/</button> <button onclick="rest()">reset</button>

所以我試圖解決我的問題,但我不能,當我按重置以某種方式重置結果時,值仍然存在並且無法計算新數字

很簡單,你需要做的就是讓變量是全局的。

The issue you were facing was that each function had its own variable for sum ( they were defined again with let and thus existed in the scope of the function sperate from their global counterpart ) and hence each function was only accessing its own variable and in the重置 function 的情況下也有自己的 n1 和 n2 填充了提示中的最新值,但全局 n1 和 n2 值沒有更改,因為其他函數使用全局 n1 和 n2 來計算舊的結果結果顯示給他們,而重置每次都在自己的 n1 和 n2 中設置值,而不會影響全局 n1 和 n2。

希望能幫助到你,

let n1 = document.getElementById("num1").innerText = Number(prompt("N1"))
let n2 = document.getElementById("num2").innerText = Number(prompt("N2"))
let changeR = document.getElementById("result")
let sum = 0;

function add(){
sum = n1 + n2
changeR.innerText = sum
}


function sub(){
sum = n1 - n2
changeR.innerText = sum
}

function mult(){
sum = n1 * n2
changeR.innerText = sum
}

function divi(){
sum = n1 / n2
changeR.innerText = sum
}

function rest(){

sum = 0;
console.log(sum)
changeR.innerText = sum
n1 = document.getElementById("num1").innerText = Number(prompt("N1"))
n2 = document.getElementById("num2").innerText = Number(prompt("N2"))
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM