let num = 10;
num.toString(); // "10" -> 숫자를 문자열로 바꿔줌
num.toString(2); // 10진수 "10"을 2진수 "1010"으로 바꿔줌
let num2 = 255;
num2.toString(16); // 10진수 "255"를 16진수 "ff"로 바꿔줌
올림
let num1 = 5.1;
let num2 = 5.7;
Math.ceil(num1); // 6
Math.ceil(num2); // 6
내림
let num1 = 5.1;
let num2 = 5.7;
Math.ceil(num1); // 5
Math.ceil(num2); // 5
반올림
let num1 = 5.1;
let num2 = 5.7;
Math.ceil(num1); // 5
Math.ceil(num2); // 6
Math.round()
이용 let userRate = 30.1237;
//소수점 둘째자리까지 표현(셋째자리에서 반올림)
Math.round(userRate * 100) / 100 //30.12
//소수점 셋째자리까지 표현(넷째자리에서 반올림)
Math.round(userRate * 1000) / 1000 //30.124
toFixed()
이용let userRate = 30.1237;
//소수점 둘째자리까지 표현(셋째자리에서 반올림)
userRate.toFixed(2); //30.12
//소수점 셋째자리까지 표현(넷째자리에서 반올림)
userRate.toFixed(3); //30.124
//그 외
userRate.toFixed(0); //"30"
userRate.toFixed(6); //"30.123700"
단, 주의할 점은 toFixed()
는 문자열을 반환한다.
숫자인지 아닌지 판단.
==NaN
이나 ===NaN
으로 하면 안됨!
let x = Number("x"); //x는 NaN임
//isNaN() 이용 안할 경우, 우리가 원하는 결과가 안 나옴
x == NaN //false
x === NaN // false
NaN == NaN // false -> 심지어 이것도 false라고 함
//따라서 NaN 판단은 무조건 isNaN()으로 해야한다.
isNaN(x) // true
isNaN(3) // false
문자열을 숫자로 바꿔줌. Number()
와 다른 점은, 문자가 포함되어 있어도 동작을 한다는 것이다. 읽을 수 있는 부분까지 읽고, 문자를 만나면 읽은 부분까지를 반환한다. 즉 처음부터 문자로 시작하면 숫자를 반환하지 못하고 NaN
을 반환한다. Number()
는 어디에든 문자가 포함되어 있으면 NaN
을 반환한다.(단 공백은 있어도 상관없음)
let margin = "10px";
parseInt(margin); //10
Number(margin); // NaN
// 이 경우에는 parseInt도 NaN을 반환한다
let redColor = "f3";
parseInt(redColor); //NaN
parseInt()
는 두 번째 인수로 진수를 설정해줄 수 있다.
//위에서 작성한 예제
let redColor = "f3";
parseInt(redColor); //NaN
//16진수로 설정. 16진수에서 f는 숫자이다.
let redColor = "f3";
parseInt(redColor, 16); //243
parseInt()
와 동일하게 동작하지만, 부동소수점을 반환한다.
let padding = "18.5%";
parseInt(padding); // 18
parseFloat(padding); // 18.5
0~1 사이 무작위 숫자 생성
Math.random(); // 0.45930103294789837
Math.random(); // 0.26114731261519153
Math.random(); // 0.8677601709129028
그럼 1~100 사이 무작위 숫자를 뽑고 싶다면?
Math.floor(Math.random() * 100) + 1;
Math.max(1, 4, -1, 5, 10, 9, 5.54); // 10
Math.min(1, 4, -1, 5, 10, 9, 5.54); // -1
절대값(absolute)
Math.abs(-1); // 1
n^m
Math.pow(2,10); // 1024
제곱근
Math.sqrt(16); // 4