Number 와 number의 차이점 (JS, TS)

2025. 2. 4. 03:50_Web/TypeScript

728x90

 

 

Number 와 number의 차이점
const [N, M]: number[] = input[0].split(" ").map(Number); 

 

🚀 Number vs number 차이점

TypeScript에서 Number와 number는 다른 개념입니다.

구분Number (대문자)number (소문자)

종류 JavaScript의 객체 타입 (객체 래퍼) TypeScript의 기본 타입 (원시 타입)
역할 number 타입을 감싸는 객체 기본 숫자형 (primitive type)
사용 예시 const n = new Number(123); const n: number = 123;
주의점 객체로 생성되므로 성능 저하 가능 일반적인 숫자 처리 방식

1️⃣ Number (대문자) - JavaScript의 객체 타입

Number는 JavaScript의 내장 객체 (Object Wrapper) 입니다.
즉, 숫자 값을 감싸는 객체(Wrapper Object) 로 동작합니다.

ts
복사편집
const num1 = new Number(123); console.log(typeof num1); // object

⚠️ typeof num1 === "object"
→ Number 객체를 사용하면 원시 타입(number)이 아니라 객체가 됩니다.

객체이므로 toFixed(), toString() 같은 메서드를 사용할 수 있습니다.

ts
복사편집
const num1 = new Number(123); console.log(num1.toFixed(2)); // "123.00"

하지만 객체는 원시 값보다 메모리를 더 많이 사용하고, 비교 시도할 때 문제가 발생할 수 있습니다.

ts
복사편집
console.log(new Number(123) === 123); // false

→ new Number(123)은 객체이고, 123은 원시 값이므로 다릅니다.


2️⃣ number (소문자) - TypeScript의 기본 타입

number는 TypeScript의 기본 숫자 타입이며 JavaScript의 원시 타입(primitive type) 입니다.

ts
복사편집
const num2: number = 123; console.log(typeof num2); // "number"

✅ number는 객체가 아닌 원시 타입이므로 성능이 좋고 일반적인 연산에서 안전하게 사용할 수 있습니다.


3️⃣ 실전 적용: map(Number)의 의미

ts
복사편집
const [N, M]: number[] = input[0].split(" ").map(Number);

✔ Number는 map()에서 number로 변환하는 함수

  • map(Number)에서 Number는 숫자로 변환하는 함수 역할을 합니다.
  • 원래 map() 함수 내부에서 Number(x)를 실행하면, x를 숫자로 변환합니다.
ts
복사편집
console.log(Number("123")); // 123 (number 타입) console.log(Number("456.78")); // 456.78 (number 타입) console.log(Number("abc")); // NaN (변환 실패)

✅ map(Number)를 사용하면 문자열 배열을 숫자 배열로 변환할 수 있습니다.

ts
복사편집
const arr = ["1", "2", "3"].map(Number); console.log(arr); // [1, 2, 3] (number[])

map(Number)는 map(x => Number(x))와 동일합니다.


🔥 최종 정리

구분Number (대문자, 객체 타입)number (소문자, 원시 타입)

역할 객체 래퍼 (Wrapper Object) 기본 숫자 타입 (Primitive Type)
사용법 const n = new Number(123); const n: number = 123;
비교 객체(object)이므로 비교 시 다를 수 있음 숫자(number) 그대로 사용 가능
map()에서 사용 map(Number)로 숫자 변환 가능 map(x => Number(x))와 동일

🚀 결론

  • Number는 객체 타입이라 직접 new Number()로 선언하지 않는 것이 좋습니다.
  • number는 TypeScript에서 기본적으로 사용해야 하는 숫자 타입입니다.
  • map(Number)는 문자열을 숫자로 변환하는 데 유용하게 사용됩니다.

따라서, const [N, M]: number[] = input[0].split(" ").map(Number); 코드는 숫자 배열로 변환하는 올바른 방식입니다! 🎯

 

 

이 글은 AI로 작성한 실험적인 글입니다.