JavaScript에서 더하기(산술 덧셈)와 문자열 연결(concatenation)은 모두 동일한 + 연산자를 사용하지만, 실제로 수행되는 연산은 서로 다릅니다. 연결은 문자열을 이어 붙이는 작업에 사용되는 반면, 단순 덧셈은 숫자 값을 더하는 산술 연산입니다.
핵심 규칙은 간단합니다. + 연산자의 피연산자 중 하나라도 문자열이 있으면, JavaScript는 나머지 숫자를 문자열로 변환하여 두 값을 이어 붙입니다. 반면 두 피연산자가 모두 숫자라면 일반적인 산술 덧셈이 수행됩니다.
예제
다음 예제는 숫자를 더하는 경우와 문자열을 연결하는 경우의 결과 차이를 보여줍니다.
<!DOCTYPE html> <html> <body> <script> // 숫자와 문자열을 더하면 연결(문자열 결합)이 발생 var val1 = 30 + "25"; document.write(val1+"<br>"); // 숫자끼리 더하면 산술 덧셈이 발생 var val2 = 30 + 25; document.write(val2); </script> </body> </html>
출력 결과
3025 55
위 코드에서 30 + "25"는 숫자 30이 문자열로 변환되어 "3025"라는 문자열이 되고, 30 + 25는 산술 덧셈이 적용되어 55라는 숫자가 됩니다. 이처럼 같은 + 연산자라도 피연산자의 자료형에 따라 전혀 다른 결과가 나올 수 있으므로, 사용자 입력값 등을 다룰 때는 항상 자료형을 주의 깊게 확인해야 합니다.