인프런 강의 자바스크립트 중급 - 코딩앙마 를 듣고 정리한 내용입니다.
실생활에서 사용하는 숫자는 10진수 인데 개발에서는 2진수나 16진수(색상표현)을 쓸 일이 있습니다. 그럴 때 toString()
을 사용합니다.
// toString() 은 기본적으로 숫자를 문자로 바꿉니다.
let num = 10;
num.toString(); // "10"
// 이때 () 안에 숫자를 쓰면 그 숫자의 진법으로 변환합니다.
num.toString(2); // "1010"
let num2 = 255;
num2.toString(16); // "ff"
수학과 관련한 프로퍼티와 메소드를 가진 Math
함수를 살펴보면,
Math.PI
를 입력하면 원주율을 보여줍니다.
Math.ceil()
은 올림
let num1 = 5.1;
let num2 = 5.7;
Math.ceil(num1); // 6
Math.ceil(num2); // 6
Math.floor()
는 내림
let num1 = 5.1;
let num2 = 5.7;
Math.floor(num1) // 5
Math.floor(num2) // 5
Math.round()
는 반올림
let num1 = 5.1;
let num2 = 5.7;
Math.round(num1) // 5
Math.round(num2) // 6
소수점 자릿수까지 표현해야 할 경우는
let userRate = 30.1234;
Math.round(userRate * 100)/100 // 30.12
//3012.34 를 만들어서 반올림 한 후 다시 100으로 나누어 준다.
위와 같은 경우는 toFixed()
를 쓰면 더 편리합니다.
숫자를 인수로 받아 그 숫자만큼 소숫점 이하 갯수를 반영합니다.
let userRate = 30.1234;
userRate.toFixed(2);
"30.12"
// 0 이거나 기존 소수부 갯수보다 큰 값을 넣으면
userRate.toFixed(0); // "30"
userRate.toFixed(6); // "30.123400" - 남는 자리 0으로 채움
// 통계나 지표작업에 많은 쓰입니다.
// 문자열로 반환한다는 것을 주의합니다.
// 대게 문자열을 숫자로 변환하 작업합니다.
userRate.toFixed(2); // "30.12"
Number(userRate.toFixed(2)); // 30.12
isNaN()
은 NaN
인지 아닌지 판단해줍니다. Not a Number
의 약자로 숫자가 아니면 true
를 반환합니다. 숫자면 false
를 반환합니다.
let x = Number('x'); // x 는 NaN
// 자기 자신과 똑같지 않다고 판단
x == NaN // false
x === NaN // false
NaN == NaN // false
isNaN(x) // true
isNaN(3) // false
parseInt()
는 문자열을 숫자로 바꿉니다. Number()
와 다르게 문자와 혼용되어 있어도 동작합니다.
let margin = '10px';
parseInt(margin); // 10 - 읽을 수 있는 부분까지 읽고 반환
Number(margin); // NaN
let redColor = 'f3';
parseInt(redColor); // NaN
// 이렇게 문자가 먼저 오면 NaN 을 반환
parseInt(redColor, 16); // 243
// 두번째 인수에 16을 전달해서 16진수로 바꿀 수 있다.
parseInt('11', 2) // 3
// 문자열 11을 숫자로 바꾸고 2진수를 10진수로 바꿀 수도 있다?
parseFloat()
은 부동소수점을 반환합니다.
let padding = '18.5%';
parseInt(padding); // 18 - 소수점 이하 무시 정수만 반환
parseFloat(padding); // 18.5
Math.random()
은 0-1 사이의 무작위 숫자를 생성합니다.
// 1과 100 사이의 숫자를 임의로 뽑고 싶다면
Math.floor(Math.random() * 100)+1
// 랜덤 숫자가 0.003 일 수 있으니 최소값 1을 더한다.
Math.max()
Math.min()
은 괄호 안의 인수들 중 최대값, 최소값을 고를 수 있습니다.
Math.max(1, 3, -2, 10); //10
Math.min(1, 3,-1, 10); // -1
Math.abs()
는 절대값을 반환합니다.
Math.abs(-1) // 1
Math.pow(n, m)
은 n의 m승 값을. 거듭제급 값을 보여줍니다.
Math.pow(2, 10); // 1024
Math.sqrt()
는 제급근, 루트를 씌웁니다.
Math.sqrt(16) // 4
Math
함수들은 쇼핑몰이나 통계, 지표등의 업무를 할 때 필요합니다.