자바스크립트 중급 5 -숫자, 수학 method (Number, Math)
우리가 평소에 사용하는 '10진수' → 개발을 하다보면 '2진수/16진수'가 필요하여 바꿔줘야 한다.
let num = 10;
num.toString(); //"10" toString→ 숫자를 문자로 바꿔준다.
num.toString(2); //"1010" →괄호 안에 쓴 숫자의 진법(2진법)으로 변환한다.
let num2 = 255;
num2.toString(16); //"ff" →255를 16진수로 바꾼다.
*수학과 관련된 프로퍼티와 메소드를 가지고 있는 내장 개체 → Math
Math.PI; //3.1415926535 원주율
①Math.ceil() : 올림
let num1 = 5.1; → Math.ceil(num1); //6
let num2 = 5.7; → Math.ceil(num1); //6
②Math.floor() : 내림
let num1 = 5.1; → Math.floor(num1); //5
let num2 = 5.7; → Math.floor(num1); //5
③Math.round : 반올림
let num1 = 5.1; → Math.round(num1); //5
let num2 = 5.7; → Math.round(num1); //6
④소수점 자릿수
let userRate = 30.1234;
요구사항: 소수점 둘째자리 까지 표현(셋째 자리에서 반올림)
첫번째 방법 :
1- userRate * 100 = 3012.34
2- Math.round( userRate * 100 ) = 3012
3- Math.round( userRate * 100 )/100 = 30.12
두번째 방법 : toFixed()
userRate.toFixed(2); →소수점 이하 자리를 인수로 받아 계산 //"30.12"
userRate.toFixed(0); //"30"
userRate.toFixed(6); //"30.123400"
★주의점: toFixed()는 문자열로 반환하므로, Number()를 사용해 숫자열로 변환 후 작업
userRate.toFixed(2); //"30.12"
→ Number(userRate.toFixed(2)); //30.12
⑤isNaN() : NaN을 판단하는 유일한 메소드
let x = Number('x') ; //NaN
x == NaN //false
x === NaN //false
NaN == NaN //false
isNaN(x) //true
isNaN(3) //false
⑥parseInt() : 문자열(문자+숫자ok)을 숫자로 변환
let margin = '10px'; → parseInt()는 읽을 수 있는 데까지 일고 문자를 만나면 숫자로 반환
parseInt(margin) ; //10
Number(margin); //NaN
let redColor = 'f3';
parseInt(redColor); //NaN → 문자로 시작하기 때문에 못 읽어 NaN반환
But, 두번째 인수를 받아 진수를 지정할 수 있다.
parseInt(redColor, 16) ; //243 →두번째 인수에 16을 받아 16진수로 변환
parseInt('11', 2) //3 → 11(10진수)을 2진수로 변환
⑦parseFloat() : 부등소수점을 반환
let padding = '18.5%';
parseInt(padding); //18
parseFloat(padding); //18.5
⑧Math.random()
0~1 사이 무작위 숫자 생성
Math.random() //0.260278239648124
Math.random() //0.896151313153435
1~100 사이 임의의 숫자를 뽑고 싶다면?
Math.floor(Math.random() *100) +1
⑨Math.max() / Math.min()
Math.max(1,4,-1,5,10,9,5.54); //10
Math.min(1,4,-1,5,10,9,5.54); //-1
⑩Math.abs() : 절대값
abs = absoulte
Math.abs(-1) //1
Math.pow(n,m) : 제곱-n의 m승
Math.pow(2, 10); //1024
Math.sqrt() : 제곱근
Math.sqrt(16) //4