저는 JS에 비교적 익숙하며, 숫자를 취한 다음 두 번째 숫자가있는 연산자를 사용하여 전체를 만드는 JavaScript 계산기를 만들려고합니다. 그런 다음 다른 번호를 사용하여 다른 연산자를 사용할 수 있습니다. 그런 다음 지우기 단추를 누를 때까지 계속됩니다. 내 가장 큰 문제는 내 변수의 범위 인 것 같다. 순간에 나는 한자리 숫자를 더하거나 뺍니다. 이 코드가 적어도 하나의 숫자를 곱하고 나누지 않는 이유가 있습니까?자바 스크립트 계산기 - 범위?
다른 생각은 사용되는 두 개의 숫자에 대해 빈 배열로 두 개의 변수를 만드는 것입니다. 그러면 각 활성 버튼을 누를 때마다 특정 배열로 밀어 넣을 수 있습니다. 한 자리 숫자를 사용하는 것이 맞습니까? 미리 감사드립니다! 배우고 계속 나아 지려고 노력하십시오!
// Calculator
var number = '';
var newNumber = '';
var operator = '';
var totalVal = '';
var result = '';
var inputCount = 0;
// Adds clicked numbers to the number variable and then sets value to totalVal
$('.numbers').on('click', function(){
if(result == ''){
inputCount++;
if (inputCount < 2){
number += $(this).text();
$('.inner-screen').text(number);
result = number;
console.log("number: " + number);
console.log("result: " + result);
} else {
newNumber = $(this).text();
}
// number = '';
} else{
newNumber += $(this).text();
$('.inner-screen').text(newNumber);
}
console.log("number: " + number + ", newNumber: " + newNumber);
});
$('.operators').on('click', function(){
operator = $(this).text();
console.log(operator);
$('.inner-screen').text('');
});
// Resets all the variables when clear button is clicked
$('.clear').on('click', function(){
number = '';
result = '';
newNumber = '';
operator = '';
totalVal = '';
inputCount = 0;
console.log('Clear Button Worked!');
$('.inner-screen').text('');
});
$('.eval').on('click', function(){
console.log("num1: " + number + ", operator: " + operator + ", num2: " + newNumber);
if (operator === " + "){
result = parseFloat(newNumber) + parseFloat(number);
console.log(result);
} else if (operator === " - "){
result = parseFloat(number) - parseFloat(newNumber);
console.log(totalVal);
} else if (operator === " X "){
result = parseFloat(newNumber) * parseFloat(number);
console.log(result);
} else if (operator === "/"){
result = parseFloat(number)/parseFloat(newNumber);
console.log(result);
} else {
console.log("didn't catch");
}
$('.inner-screen').text(result);
number = '';
newNumber = '';
});