내가 만든 계산기
<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>
()를 사용하면 안에 숫자로 인식하나봐.......