문자열 타입 변환
자바스크립트 + 연산자는 피연산자 중 하나 이상이 문자열이면 암묵적 타입 변환을 통해 숫자 등 다른 타입의 피연산자를 문자열로 변환하여 문자열 연결 연산자로 동작한다.
문자열 연결 연산자
자바스크립트에서 문자열 연결 연산자(+)는 암묵적 타입 변환을 통해 문자열이 아닌 피연산자를 문자열로 변환한다. 이때, 숫자는 기본적으로 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"가 숫자로 변환됨)
+ 가 아닌 다른 연산자 -, * 같은 연산자는 문자열을 숫자로 암묵적 변환한다.
'Javascript' 카테고리의 다른 글
[Javascript] Array.prototype.reverse() (0) | 2024.05.22 |
---|---|
[Javascript] 유사 배열 객체 (Array-like Object) (0) | 2024.05.14 |
[Javascript] trim() (0) | 2024.05.11 |
[Javascript] 변수 선언 시 메모리 할당 과정 (0) | 2024.04.27 |
[Javascript] parseInt 와 Math.floor 차이 (0) | 2024.04.09 |