자바스크립트에서의 숫자형 산술 연산과 형 변환 문제

자바스크립트는 동적 타입 언어로, 변수의 타입을 선언하지 않아도 됩니다. 이는 매우 편리한 동시에 혼란스러울 수 있는 부분이기도 합니다. 특히 숫자형 산술 연산과 형 변환에서 문제가 발생할 수 있습니다.

숫자형 산술 연산

자바스크립트에서 숫자형 산술 연산을 수행할 때, 같은 숫자 타입끼리 연산을 하면 예상대로 동작합니다. 예를 들어, 두 개의 정수를 더하면 정수가 반환되며, 두 개의 실수를 더하면 실수가 반환됩니다. 그러나 서로 다른 숫자 타입끼리 연산을 할 경우에는 주의해야 합니다.

let num1 = 10;     // 정수
let num2 = 1.5;    // 실수

let result1 = num1 + num2;
console.log(result1);    // 11.5 (실수)

let result2 = num1 - num2;
console.log(result2);    // 8.5 (실수)

위의 예제에서는 정수와 실수를 더하거나 빼는 연산을 수행했습니다. 이 경우, 자바스크립트는 결과를 실수로 반환합니다.

형 변환 문제

자바스크립트에서는 숫자형뿐만 아니라 문자열과도 산술 연산이 가능합니다. 하지만 이 때 형 변환이 자동으로 이루어져 예상치 못한 결과가 나올 수 있습니다.

let num3 = "10";    // 문자열

let result3 = num1 + num3;
console.log(result3);    // "1010" (문자열)

let result4 = num1 - num3;
console.log(result4);    // 0 (정수)

위의 예제에서는 정수와 문자열을 더하거나 빼는 연산을 수행했습니다. 자바스크립트는 숫자 타입과 문자열 타입 간에 자동으로 형 변환을 하게 됩니다. 따라서 더하기 연산은 두 개의 문자열을 이어붙이는 문자열 연결(concatenation)이 되어 결과가 “1010”이라는 문자열로 반환됩니다. 그러나 빼기 연산은 숫자 타입으로 변경될 수 있는 문자열을 숫자로 변환하여 계산을 수행하므로 결과는 0이 됩니다.

이와 같이 자바스크립트에서의 숫자형 산술 연산과 형 변환은 주의가 필요한 부분입니다. 적절한 형 변환을 통해 의도한 연산이 이루어지도록 코드를 작성해야 합니다.

참고 자료

  1. JavaScript Number Arithmetic
  2. JavaScript Type Conversion

#javascript #산술연산 #형변환