카테고리 없음

calculartor JS 기능 구현 중 발견한 오류

JJ_hyun 2022. 5. 5. 22:26
const onClickOperlator = (op) =>()=>{
    operator = op;
    data_operator.value = op;
    if(numVal1 && !numVal2){
        data_result.value = ''
    }
    else if(!numVal1){
        alert('숫자를 입력해 주세요!')
    }
    else if(operator === 'C'){ // 현재 문제점. 3번까지만 연산하고 그 이후로는 함수가 실행되지 않음. 고로 c 를 현재 위치의 함수 밖으로 빼고 c 를 눌렀을 때 함수가 다시 실행 될 수 있도록 해야할듯.
        console.log('reset')
        data_operator.value = 'oper'
        data_result.value = ''
        operator = 'oper'
        numVal1 = numVal2 =  ''
    }
}

현재 사칙연산을 계산하는 것 까지는 구현을 했다. 

하지만 치명적인 오류가 발생했으니 그것은 함수가 재호출 되지 않는다는 것이다. 

즉, 숫자를 입력하고 = 버튼을 클릭하여 결과값을 얻은 후, C 버튼을 통해 value 를 리셋 한 후 

다시 연산을 시작해야 하는데 거기서 오류가 발생했다. 

 

다음 연산을 하기 위해 숫자를 입력하면 numVal1 까지는 숫자가 들어가나, operator 값을 넣기위해

연산자를 누르면 숫자를 입력하라는 창이 나온다. 

생각해보니 C 버튼을 눌렀을 때 함수를 재 호출하면 되지 않을까? 라는 생각을 했다. 

 

C 버튼을 따로 분리하여 새로운 함수를 정의해 주는게 맞는 것 같다. 

내일은 현재 마주한 오류를 해결해 볼 예정이다. 

 

내일은 반드시 해결 할 수 있을 것이다. 화이팅!