1. 자바스크립트 숫자형 데이터타입
ㅇ 타 프로그래밍 언어에서는, 여러 숫자 데이터타입을 지원하지 만,
- 자바스크립트는, 단순성을 위해 숫자형에 하나의 데이터타입 만 가능 함
ㅇ 즉, IEEE 754 배정도 (64 비트) 부동소수점 만 지원 함
- 내부적으로, 8 바이트 (64 비트) 부동소수점으로써 저장/처리 됨
. 부호 (1비트), 지수 부분 (11비트), 가수 부분 (52비트)
2. 자바스크립트 숫자 표현
ㅇ 정수 숫자 표현 (4가지)
- 10진수 : 123
- 16진수 : 0x123 (숫자 앞에 0x를 붙임)
- 8진수 : 0o123 (숫자 앞에 0o를 붙임)
- 2진수 : 0b101 (숫자 앞에 0b를 붙임)
ㅇ 실수 숫자 표현 (10진수에 한 함)
- 고정소수점 표현 : 0.123 (정수부가 0일때는 0 생략 가능)
- 부동소수점 표현 : 1.02e123 또는 1.02E123 (1.02x1023)
ㅇ 특별한 숫자 표현
- Infinity : +∞ (전역변수)
- NaN : Not a Number, 부정 값 (전역변수)
3. 자바스크립트 Number 객체의 프로퍼티
ㅇ Number.POSITIVE_INFINTY : +∞
ㅇ Number.NEGATIVE_INFINTY : -∞
ㅇ Number.MAX_VALUE : 표현 가능 최대값
ㅇ Number.MIN_VALUE : 표현 가능 최소값
ㅇ Number.NaN : Not a Number,부정 값
ㅇ Number.EPSILON
ㅇ Number.MAX_SAFE_INTEGER : 가능한 최대 정수값 (1.7976931348623157e+308) (무한대)
ㅇ Number.MIN_SAFE_INTEGER : 가능한 최소 정수값 (5e-324)
4. 자바스크립트 Number 객체의 메소드
ㅇ (많이 쓰이는 메소드)
- Number.isNaN(), Number.isFinite(), Number.isInteger()
- Number.isSafeInteger()
ㅇ 문자열을 수치로 변환
- parseInt(); // 문자열을 정수 변환
. parseInt(num); // 정수 만 추출. 한편, 나눗셈일 경우, 몫 임
. parseInt(num,base); // base로 지정된 진법으로, 10진수 정수 변환
- parseFloat(); // 소수점,지수 표현까지 포함한 문자열을 수치 변환
- Number(); // Number() 함수에 의한 수치 변환
ㅇ 정수 근사 변환
- toFixed(); // 소수점 이하 지정된 자릿수로 반올림
. 例) const x=19.51; x.toFixed(3) => 19.510 x.toFixed(0) => 20
- toPrecision(); // 수치 전체를 지정된 유효자리수가 되도록 반올림
. 例) let x=1000; x.toPrecision(5) => 1000.0 x.toPrecision(4) => 1000
x.toPrecision(3) => 1.00e+3 x.toPrecision(2) => 1.0e+3
x.toPrecision(1) => 1e+3
- ceil(); // 천장 함수
- floor(); // 마루 함수
- round(); // 반올림
ㅇ 정수 진법 변환
- toString(); // 지정한 기수법(진법 체계,2부터 36까지 가능)에 의한 문자열로 변환
. 例) numObject.toString(2) => 2진수, numObject.toString(16) => 16진수 등
ㅇ 지수 변환
- toExponential(); // 매개변수에 따라 소수점 뒤 숫자로써 반올림
. 例) const x=3800.5; x.toExponential(4) => 3.8005e+3
x.toExponential(3) => 3.801e+3 x.toExponential(0) => 4e+3
ㅇ 기타 기초
- pow(base,p); // 거듭제곱(basep)
- random(); // 0~1 사이의 난수를 반환
ㅇ 판단
- isFinite(); // 유한값 여부 판단
- isInteger; // 정수 여부 판단
- isNaN(); // 수치인지 아닌지 판단
5. 자바스크립트 Math 객체의 프로퍼티
ㅇ Math.E : 자연로그의 밑 수 (자연상수)
ㅇ Math.LN2 : 2의 자연로그
ㅇ Math.LN10 : 10의 자연로그
ㅇ Math.LOG2E : 2를 밑수로 한 상용로그 e의 값
ㅇ Math.LOG10E : 10을 밑수로 한 상용로그 e의 값
ㅇ Math.PI : 원주율 (π)
ㅇ Math.SQRT1_2 : 1/2의 제곱근
ㅇ Math.SQRT2 : 2의 제곱근
6. 자바스크립트 Math 객체의 메소드
ㅇ 기초
- Math.abs(x) : |x| (x의 절대값)
- Math.ceil(x) : x의 천장함수
- Math.floor(x) : x의 마루함수
- Math.trunc(x) : x의 정수부
- Math.round(x) : x의 반올림
- Math.min(x,y,...) : 제일 작은 값
- Math.max(x,y,...) : 제일 큰 값
ㅇ 지수,거듭제곱,제곱근 등
- Math.exp(x) : ex (e의 x 거듭제곱)
- Math.expm1(x) : ex-1 (e의 x 거듭제곱에서 1을 뺀 값)
- Math.pow(x,y) : xy
- Math.sqrt(x) : √x (x의 제곱근), Math.pow(x,0.5)와 같음
- Math.cbrt(x) : x1/3 (x의 세제곱근)
- Math.hypot(x,y,...) : 인수들의 제곱 합의 제곱근
ㅇ 삼각함수
- Math.sin(x) : sin(x) (x의 사인, 매개변수 x에 라디안 대입해야 함)
- Math.cos(x) : cos(x) (x의 코사인, 매개변수 x에 라디안 대입해야 함)
- Math.tan(x) : tan(x) (x의 탄젠트, 매개변수 x에 라디안 대입해야 함)
ㅇ 삼각함수의 역함수
- Math.asin(x) : arcsin(x) (x의 아크 사인, 결과가 라디안)
- Math.acos(x) : arccos(x) (x의 아크 코사인, 결과가 라디안)
- Math.atan(x) : arctan(x) (x의 아크 탄젠트, 결과가 라디안)
- Math.atan2(y,x) : x축에서 점(x,y)까지의 시계 반대방향 각도를 라디안으로 나타낸 값
ㅇ 쌍곡선함수
- Math.sinh(x) : sinh(x) (x의 하이퍼볼릭 사인, 매개변수 x에 라디안 대입해야 함)
- Math.cosh(x) : cosh(x) (x의 하이퍼볼릭 코사인, 매개변수 x에 라디안 대입해야 함)
- Math.tanh(x) : tanh(x) (x의 하이퍼볼릭 탄젠트, 매개변수 x에 라디안 대입해야 함)
ㅇ 쌍곡선함수의 역함수
- Math.asinh(x) : arcsinh(x) (x의 하이퍼볼릭 아크 사인, 결과가 라디안)
- Math.acosh(x) : arccosh(x) (x의 하이퍼볼릭 아크 코사인, 결과가 라디안)
- Math.atanh(x) : arctanh(x) (x의 하이퍼볼릭 아크 탄젠트, 결과가 라디안)
ㅇ 로그
- Math.log(x) : ln(x) (x의 자연로그)
- Math.log2(x) : log2(x) (x의 밑수가 2인 상용로그)
- Math.log10(x) : log10(x) (x의 밑수가 10인 상용로그)
- Math.log1p(x) : log(x+1)