본문 바로가기

노마드코더 복습

함수 계산기 만들기

내가 만든 계산기

<script>
             
       const calculator = {
            add: function(a, b){
                console.log(a + b);                
            },
            devide: function(a, b){
                console.log(a / b);
            },
            double: function(a, b){
                console.log(a * b);
            } 
        }

        calculator.add(10, 5);
        calculator.devide(10, 5);
        calculator.double(2, 3);
        
    </script>

콘솔창 완벽..

 

 

그런데
댓글에 다른 사람이 만든 것도 보다가 문제 발견!!!

콘솔창에 a + b = 15 와 같은 식을 완성 시키려고 만든 코드같은데

 <script>
       const calculator = {
        plus : function(a,b) {
        console.log(a + "+" + b + "=" + a+b);
        },
        minus : function(a,b) {
        console.log(a + "-" + b + "=" + a-b);
        },
        multiple : function(a,b) {
        console.log(a + "*" + b + "=" + a*b);
        },
        divide : function(a,b) {
        console.log(a + "/" + b + "=" + a/b);
        },
        squareRoot : function(a) {
        console.log( a + "^" + 2 + "=" + a*a);
        }
        }

        calculator.plus(10, 5);
        calculator.minus(10, 5);
        calculator.multiple(10, 5);
        calculator.divide(10, 5);
        calculator.squareRoot(10, 5);
        
     
       

        
    </script>

plus의

console.log(a + "+" + b + "=" + a+b);

는 문자열로 a,b를 문자열로 인식해버려서 a+b=105가 되어버렸고

console.log(a + "-" + b + "=" + a-b);

는 NaN 출력

 

나머지 정상 작동.. 오ㅐ지?

 

 

!!!!!!!!!!!!!!!! 해결법 !!!!!!!!!!!!!!!!

<script>
const calculator = {
        plus : function(a,b) {
        console.log(a + "+" + b + "=" + (a+b));
        },
        minus : function(a,b) {
        console.log(a + "-" + b + "=" + (a-b));
        },
        multiple : function(a,b) {
        console.log(a + "*" + b + "=" + (a*b));
        },
        divide : function(a,b) {
        console.log(a + "/" + b + "=" + (a/b));
        },
        squareRoot : function(a) {
        console.log( a + "^" + 2 + "=" + (a*a));
        }
        };

        calculator.plus(10, 5);
        calculator.minus(10, 5);
        calculator.multiple(10, 5);
        calculator.divide(10, 5);
        calculator.squareRoot(10, 5);
</script>

()를 사용하면 안에 숫자로 인식하나봐.......