Number 타입(숫자형)
C언어의 경우 정수냐 실수냐에 따라 int, float 등과 같이 다양한 숫자 타입이 존재합니다다.
반면에 JS는 느슨한 타입 체크 언어이므로 정수든 실수든 그냥 숫자 타입이라 생각하면 됩니다.
Number - JavaScript | MDN
Number 생성자는 숫자를 다루기 위해 상수와 메소드를 가지고 있습니다. 다른 타입의 값은 Number() 함수를 사용하여 숫자로 바꿀 수 있습니다.
developer.mozilla.org
숫자형(number type)
정수 및 부동소수점 숫자(floating point number)를 나타낸다. 즉 정수와 실수 모두 표현이 가능합니다.
let n = 123;
n = 12.345;
100; // 정수를 표현할 수 있습니다.
-100; // 음수를 표현할 수 있습니다.
100.123; // 실수를 표현할 수 있습니다.
typeof 연산자로 해당 값이 숫자 타입인지 확인할 수 있습니다.
typeof 100; // 'number'
typeof -100; // 'number'
typeof 100.123; // 'number'
typeof "숫자가 아님"; // NaN (Not a Number)
숫자형과 관련된 연산은 다양한데, 곱셈 *, 나눗셈 /, 덧셈 +, 뺄셈 - 등이 대표적이다. 자바스크립트에서는 산술 연산자(arithmetic operator)라고 부른다.
console.log(1 + 2); // 3
console.log(1 - 2); // -1
console.log(1 * 2); // 2
console.log(1 / 2); // 0.5
console.log(9 % 2); // 1 (9를 2로 나눈 나머지 구하기)
숫자형엔 일반적인 숫자 외에 Infinity, -Infinity, NaN같은 '특수 숫자 값(special numeric value)'이 포함된다.
Infinity는 어떤 숫자보다 더 큰 특수 값, 무한대(∞)를 나타낸다. 어느 숫자든 0으로 나누면 무한대를 얻을 수 있다.
console.log( 1 / 0 ); // 무한대
Infinity를 직접 참조할 수도 있다.
console.log( Infinity ); // 무한대
NaN은 계산 중에 에러가 발생했다는 것을 나타내주는 값이다 부정확하거나 정의되지 않은 수학 연산을 사용하면 계산 중에 에러가 발생하는데, 이때 NaN이 반환된다.
console.log( "숫자가 아님" / 2 ); // NaN, 문자열을 숫자로 나누면 오류가 발생합니다.
Math 내장 객체
복잡한 계산을 위해서는 Math 내장 객체를 사용할 수 있다. Math 내장 객체의 대표적인 메서드에 대해서 알아보면
- Math.floor(): 괄호 안의 숫자를 내림하여 반환합니다.
- Math.ceil(): 괄호 안의 숫자를 올림하여 반환합니다.
- Math.round(): 괄호 안의 숫자를 반올림하여 반환합니다.
- Math.abs(): 괄호 안의 숫자의 절대값을 반환합니다.
- Math.sqrt(): 괄호 안의 숫자의 루트값을 반환합니다.
- Math.pow() : 괄호 안의 첫 번째 숫자를 밑, 두 번째 숫자를 지수인 숫자를 반환합니다.
Math.floor(100.621); // 100
Math.ceil(100.621); // 101
Math.round(100.621); // 101
Math.round(100.421); // 100
Math.abs(-100); // 100
Math.abs(100); // 100
Math.sqrt(4); // 2
Math.sqrt(2); // 1.4142135623730951
Math.pow(2, 5); // 32
아래 링크를통해 더욱 다양한 Math 내장객체 메서드를 알아볼 수 있다.
Math - JavaScript | MDN
**Math**는 수학적인 상수와 함수를 위한 속성과 메서드를 가진 내장 객체입니다. 함수 객체가 아닙니다.
developer.mozilla.org