자바스크립트는 동적 타입 언어로, 이를 통해 다양한 데이터 타입을 가지고 유연하게 프로그래밍을 할 수 있다. 이번에는 자바스크립트에서 가장 중요한 데이터 타입인 '숫자'에 대해 다루어보겠다.
자바스크립트에서 숫자는 정수나 실수, 양수나 음수 등 다양한 형태로 표현될 수 있다. 숫자는 그대로 작성하면 숫자 리터럴이라고 부르며, 이는 변수에 값을 할당하는 가장 직접적인 방법이다. 예를 들어, 다음과 같이 변수에 숫자를 할당할 수 있다.
let integer = 10; // 정수
let float = 10.5; // 실수
자바스크립트는 문자열을 숫자로 변환하는 몇 가지 방법을 제공한다. 가장 기본적인 방법은 Number
함수를 사용하는 것이다. 이 함수는 문자열을 숫자로 변환하려고 시도하며, 숫자로 변환할 수 없는 값은 NaN
을 반환한다.
let str = "123";
let num = Number(str); // 123
NaN
은 'Not a Number'의 줄임말로, 숫자가 아닌 값을 나타낸다. 숫자로 변환할 수 없는 문자열이나 연산 결과 등을 표현할 때 사용된다. NaN
은 어떤 값과도 (자기 자신과도) 동등하지 않다는 특성이 있다. 이는 NaN
값을 검사할 때 isNaN 함수를 사용해야 함을 의미한다.
console.log(NaN === NaN); // false
console.log(isNaN(NaN)); // true
Infinity
는 어떤 숫자보다도 큰 특수 값이다. 무한대를 나타내며, 너무 큰 수를 나누거나 0으로 나누려고 시도하면 Infinity
가 반환된다.
console.log(1 / 0); // Infinity
BigInt
는 아주 큰 정수를 표현할 때 사용한다. 일반적인 Number
타입으로는 표현할 수 없는 크기의 정수를 다루기 위해 도입되었다. 숫자 뒤에 n을 붙여 BigInt
리터럴을 만들 수 있다.
let bigInt = 1234567890123456789012345678901234567890n;
정수는 소수점 없이 표현된 숫자다. 자바스크립트에서 정수는 주로 Number
타입으로 표현되지만, 매우 큰 숫자는 BigInt
를 사용해 표현한다.
let integer = 10; // Number 타입의 정수
자바스크립트는 parseInt
함수를 제공하여 문자열을 정수로 변환할 수 있다. 이 함수는 문자열을 숫자로 변환하려고 시도하며, 숫자로 이루어진 부분까지만 변환하고 나머지 부분은 무시한다.
let str = "123.456";
let num = parseInt(str); // 123
자바스크립트에서는 숫자에 대해 다양한 산술 연산자를 사용할 수 있다. 이에는 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 등이 있다. 이 연산자들은 두 개의 숫자를 받아 적절한 연산을 수행한 후 결과를 반환한다.
let a = 10;
let b = 20;
console.log(a + b); // 30
console.log(a - b); // -10
console.log(a * b); // 200
console.log(a / b); // 0.5
Number.isNaN()
함수는 주어진 값이 NaN
인지 확인한다. 이 함수는 NaN 값 자체를 정확히 확인하려는 목적으로 사용된다. 이전에 설명했듯이, NaN
은 일반적인 비교 연산자로는 정확히 확인할 수 없기 때문에 이 함수가 필요하다.
console.log(Number.isNaN(NaN)); // true
console.log(Number.isNaN(123)); // false