본격적인 계산기 만들기에 앞서, 계산기에서 필요한 사칙연산 함수를 만들었다.
function calculate(n1, operator, n2) {
let result = 0;
if(operator === '+'){
result = Number(n1) + Number(n2);
} else if(operator === '-'){
result = Number(n1) - Number(n2);
} else if(operator === '*'){
result = Number(n1) * Number(n2);
} else if(operator === '/'){
result = Number(n1) / Number(n2);
}
return String(result);
}
n1 에 들어온 수와 n2에 들어온 수를 operator를 통해 사칙연산이 되게하는 함수이다.
여기서 생각해야될 부분은 n1, n2를 Number타입으로 변경해 주는것이다.
function calculate(n1, operator, n2) {
let result = 0;
if(operator === '+'){
result = n1 + n2;
}
return String(result);
}
이렇게 Number타입의 변환 없이 함수를 실행 시키게 되면
calculate(1 + 2) = 12
숫자로 더해지는것이 아닌 문자열의 합으로 인식한다.
+하기를 제외한 [ / * - ] 에서는 연산이 잘 이루어지는것은 자동 형변환으로 자바스크립트에서 숫자만 [ / * - ] 를 가능하다고 생각해 자동으로 형변환을 시켜주기 때문이다.
장점이자 단점이 될 수있는 부분이기 때문에 원하는 타입값으로 변경해 사용하는게 오류를 줄일 수 있는 방법인것 같다.