JSP/JSP기초
[Javascript] JS 형변환 총 정리
미눅스[멘토]
2025. 2. 24. 10:37
728x90
JavaScript 형변환 정리
변환 방식방법예제
문자열 변환 | String(x) | String(123) → "123" |
.toString() | (true).toString() → "true" | |
x + "" | 123 + "" → "123" | |
숫자 변환 | Number(x) | Number("10") → 10 |
parseInt(x) / parseFloat(x) | parseInt("10px") → 10 | |
+x | +"10" → 10 | |
불리언 변환 | Boolean(x) | Boolean(0) → false |
!!x | !!"hello" → true | |
JSON 변환 | JSON.stringify(x) | JSON.stringify({a:1}) → '{"a":1}' |
JSON.parse(x) | JSON.parse('{"a":1}') → {a:1} |
🔹1. 암묵적(자동) 형변환 (Type Coercion)
JavaScript는 연산자에 따라 자동으로 타입을 변환할 수 있
✅ 문자열 변환 (String Conversion)
문자열이 아닌 값을 문자열로 변환할 때 자동으로 변환
console.log(123 + ""); // "123"
console.log(true + ""); // "true"
console.log(null + ""); // "null"
console.log(undefined + ""); // "undefined"
console.log([1, 2, 3] + ""); // "1,2,3"
✅ 숫자 변환 (Number Conversion)
산술 연산 시 문자열이 숫자로 변환될 수 있어.
console.log("10" - 0); // 10
console.log("10" * 2); // 20
console.log("10" / 2); // 5
console.log("10" - "2"); // 8
console.log("10px" - 2); // NaN (숫자가 아님)
console.log(true + 1); // 2 (true → 1)
console.log(false + 1); // 1 (false → 0)
console.log(null + 1); // 1 (null → 0)
console.log(undefined + 1); // NaN (undefined는 숫자로 변환할 수 없음)
✅ 불리언 변환 (Boolean Conversion)
조건문에서 false로 취급되는 Falsy 값들은 false로 변환돼.
false
console.log(Boolean(0)); // false
console.log(Boolean("")); // false
console.log(Boolean(null)); // false
console.log(Boolean(undefined));// false
console.log(Boolean(NaN)); // false
console.log(Boolean(false)); // false
true
console.log(Boolean(1)); // true
console.log(Boolean("hello")); // true
console.log(Boolean([])); // true (비어 있어도 true)
console.log(Boolean({})); // true (비어 있어도 true)
console.log(Boolean(" ")); // true (공백 문자열도 true)
🔹 2. 명시적(수동) 형변환 (Explicit Type Conversion)
명확하게 변환하려면 형변환 함수를 사용
✅ String() (문자열 변환)
console.log(String(123)); // "123"
console.log(String(true)); // "true"
console.log(String(null)); // "null"
console.log(String(undefined));// "undefined"
console.log(String([])); // ""
console.log(String([1, 2, 3])); // "1,2,3"
console.log(String({})); // "[object Object]"
✅ Number() (숫자 변환)
console.log(Number("123")); // 123
console.log(Number(" 123 ")); // 123 (공백 무시)
console.log(Number("123abc")); // NaN (숫자로 변환 불가)
console.log(Number(true)); // 1
console.log(Number(false)); // 0
console.log(Number(null)); // 0
console.log(Number(undefined)); // NaN
console.log(Number([])); // 0
console.log(Number([1, 2, 3])); // NaN
console.log(Number({})); // NaN
✅ Boolean() (불리언 변환)
console.log(Boolean(0)); // false
console.log(Boolean(1)); // true
console.log(Boolean("")); // false
console.log(Boolean("hello")); // true
console.log(Boolean([])); // true
console.log(Boolean({})); // true
console.log(Boolean(null)); // false
console.log(Boolean(undefined));// false
🔹 3. 특수 형변환
✅ parseInt() / parseFloat() (문자열을 숫자로 변환)
Number()와 다르게, 문자열에서 숫자 부분만 추출해서 변환할 수 있다
console.log(parseInt("100px")); // 100
console.log(parseInt("12.34")); // 12
console.log(parseFloat("12.34")); // 12.34
console.log(parseInt("abc")); // NaN
console.log(parseFloat("0.1e3")); // 100
✅ toString() (숫자, 불리언, 객체 등을 문자열로 변환)
console.log((123).toString()); // "123"
console.log((true).toString()); // "true"
console.log((false).toString());// "false"
console.log([1, 2, 3].toString()); // "1,2,3"
console.log(({}).toString()); // "[object Object]"
✅ JSON.stringify() / JSON.parse()
객체를 JSON 문자열로 변환하거나 JSON 문자열을 객체로 변환할 때 사용해.
const obj = { name: "John", age: 30 };
const json = JSON.stringify(obj);
console.log(json); // '{"name":"John","age":30}'
const parsed = JSON.parse(json);
console.log(parsed); // { name: 'John', age: 30 }
🔹 4. 기타 형변환 연산자
✅ 단항 + 연산자 (숫자 변환)
console.log(+"10"); // 10
console.log(+true); // 1
console.log(+false); // 0
console.log(+null); // 0
console.log(+undefined); // NaN
console.log(+[]); // 0
console.log(+{}); // NaN
✅ !! (불리언 변환)
console.log(!!1); // true
console.log(!!0); // false
console.log(!!"hello"); // true
console.log(!!""); // false
console.log(!![]); // true
console.log(!!{}); // true