728x90
JavaScript에서 형변환(Type Conversion)은 데이터 타입을 변경하는 과정을 의미합니다. 형변환은 명시적(Explicit)으로 직접 수행하거나, 암시적(Implicit)으로 자동으로 발생할 수 있습니다.
Tip
- 암시적 형변환은 예기치 않은 버그를 유발할 수 있으므로 명시적 형변환을 사용하는 것이 좋습니다.
- Object 같은 복잡한 타입의 변환은 직접 테스트해 보는 것이 가장 확실합니다.
1. 명시적 형변환 (Explicit Type Conversion)
1.1 숫자로 변환
1.1.1 Number()
- 값을 숫자로 변환.
console.log(Number("123")); // 123
console.log(Number("123.45")); // 123.45
console.log(Number("abc")); // NaN
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
1.1.2 parseInt()
- 문자열을 정수로 변환하며, 첫 번째 숫자만 파싱.
- 진수 변화 : 다른 진수에서 10진수로 변환합니다.
- 10진법을 제외한 모든 수는 js에서 문자열타입을 가집니다.
console.log(parseInt("123abc")); // 123
console.log(parseInt("1010", 2)); // 10 (2진수 -> 10진수)
1.1.3 parseFloat()
- 문자열을 부동소수점 숫자로 변환.
console.log(parseFloat("123.45abc")); // 123.45
console.log(parseFloat("123")); // 123
1.1.4 단항 + 연산자
- 값을 숫자로 변환.
console.log(+"123"); // 123
console.log(+true); // 1
console.log(+false); // 0
console.log(+"abc"); // NaN
1.2 문자열로 변환
1.2.1 String()
- 값을 문자열로 변환.
console.log(String(123)); // "123"
console.log(String(true)); // "true"
console.log(String(null)); // "null"
console.log(String(undefined)); // "undefined"
1.2.2 toString()
- 숫자나 객체에서 호출해 문자열로 변환.
- 진수변화 : 10진수 → 다른 진수
- 10진법을 제외한 모든 수는 js에서 문자열타입을 가집니다.
console.log((123).toString()); // "123"
console.log((true).toString()); // "true"
const decimalNumber = 83;
const octal = decimalNumber.toString(8); // 10진수83을 8진수로 변환
console.log(octal); // "123"
1.3 불리언으로 변환
1.3.1 Boolean()
- 값을 불리언으로 변환.
- Falsy 값: false, 0, -0, 0n, "", null, undefined, NaN → false
- 그 외 → true
console.log(Boolean(123)); // true
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean("Hello")); // true
console.log(Boolean(undefined)); // false
2. 암시적 형변환 (Implicit Type Conversion)
JavaScript는 문맥에 따라 자동으로 형변환을 수행합니다.
2.1 문자열로의 변환
- 문자열이 포함된 연산에서 발생.
console.log(123 + "abc"); // "123abc" (숫자 -> 문자열)
console.log(true + " is true"); // "true is true"
2.2 숫자로의 변환
- 산술 연산에서 문자열이 숫자로 변환.
console.log("123" - 10); // 113 (문자열 -> 숫자)
console.log("123" * 2); // 246
console.log("abc" / 2); // NaN
2.3 불리언으로의 변환
- 조건문 등에서 발생.
if ("Hello") console.log("Truthy"); // "Truthy"
if (0) console.log("Falsy"); // 실행 안 됨
3. 형변환 표
값 숫자로 (Number()) 문자열로 (String()) 불리언으로 (Boolean())
123 | 123 | "123" | true |
"123" | 123 | "123" | true |
"abc" | NaN | "abc" | true |
true | 1 | "true" | true |
false | 0 | "false" | false |
null | 0 | "null" | false |
undefined | NaN | "undefined" | false |
"" (빈 문자열) | 0 | "" | false |
문자열 → 배열
split() : 문자열을 배열로 변환
let array = string.split(separator);
배열 → 문자열
join() : 배열을 문자열로 변환
let string = array.join(separator);
배열 ↔ 문자열 : https://ashen99.tistory.com/365
'내일배움 정리 > JS 문법 공부' 카테고리의 다른 글
(작성중)구조 분해할당 : 여러 변수를 한번에 할당하기 (0) | 2024.12.03 |
---|---|
화살표함수(작성중) (0) | 2024.12.03 |
배열 (0) | 2024.12.03 |
Math메서드(method) (1) | 2024.12.03 |
연산 기호 - 같다, 같지 않다 (==, ===, !=, !== (0) | 2024.12.03 |