[Javascript] 문자열 타입 변환

문자열 타입 변환

자바스크립트 + 연산자는 피연산자 중 하나 이상이 문자열이면 암묵적 타입 변환을 통해 숫자 등 다른 타입의 피연산자를 문자열로 변환하여 문자열 연결 연산자로 동작한다.

 

문자열 연결 연산자

자바스크립트에서 문자열 연결 연산자(+)는 암묵적 타입 변환을 통해 문자열이 아닌 피연산자를 문자열로 변환한다. 이때, 숫자는 기본적으로 String() 함수를 사용한 것처럼 문자열로 변환된다. 

 

예시

숫자 + 문자

console.log(1 + "23"); // 123

1은 숫자 "23" 은 문자열이다. 자바스크립트는 숫자 1을 문자열 "1" 로 암묵적으로 변환한 후 두 값을 연결한다. 결과적으로 "1" + "23" 이 되어 "123" 이 출력된다.

 

console.log(1 + 2 + "3"); // "33"
console.log("1" + 2 + 3); // "123"
  • 첫 번째는 1 + 2 가 숫자 덧셈으로 먼저 계산된 후 문자열 "3"과 연결된다.
  • 두 번째는 " 가 먼저 문자열 "12"로 연결되고 "12" + 3 이 되어 최종적으로 "123" 이 된다. 

이러한 순서의 차이는 연산자의 좌측에서 우측으로 평가되는 특징 때문이다.

 

boolean, null ,undefined

console.log(true + "입니다.");      // "true입니다."
console.log(null + "값");          // "null값"
console.log(undefined + "입니다."); // "undefined입니다."

위 예시에서 각각의 true, null, undefined 은 문자열로 변환된 후 연결된다.

 

+ 이외의 연산자

console.log(1 - "23"); // -22 (문자열 "23"이 숫자로 변환됨)
console.log(1 * "2");  // 2   (문자열 "2"가 숫자로 변환됨)

+ 가 아닌 다른 연산자 -, * 같은 연산자는 문자열을 숫자로 암묵적 변환한다.