그냥 적는 것 외에도 지수 표기법이나 n진법을 이용한 표기 등을 사용할 수 있음
let millionare = 1000000000;
let myNumber = 1e9; // 지수 표기법
console.log(millionare); // 1000000000
console.log(myNumber); // 1000000000
console.log(millionare === myNumber); // true
let hex1 = 0xff; // 255
let hex2 = 0xFF; // 255
let octal = 0o377; // 255
let binary = 0b11111111; // 255
console.log(hex1); // 255
console.log(hex2); // 255
console.log(octal); // 255
console.log(binary); // 255
파라미터로 숫자값을 전달해주면 그만큼 소수점 아래 자릿수를 고정해줌 범위는 1부터 100
즉 3을 넣으면 소수점 4번째 자리를 반올림해서 3번째 까지 표기해줌
만약 소수점 자리를 초과하게 되면 자리가 0으로 채워짐
let myNumber = 0.3591;
//toFixed(0~100)
console.log(myNumber.toFixed(3)); // 0.359
console.log(myNumber.toFixed(7)); // 0.3591000
주의해야할 점! toFixed를 사용하면 자료형이 string이 됨!
그래서 +연산 할 경우 그냥 문자열 연결이 되므로 숫자로서 이용하고 싶다면 Number()를 통해 다시 숫자형으로 바꿔줘야함
또는 앞에 그냥 +를 붙여주면 숫자형으로 바뀜!
console.log(typeof myNumber.toFixed(3)); // string
console.log(typeof +myNumber.toFixed(3)); // Number
n진법으로 변환하는 메서드. 범위는 2부터 36
let myNumber = 255;
console.log(myNumber.toString(2)); // 11111111
console.log(myNumber.toString(8)); // 377
console.log(myNumber.toString(16)); // ff
이것 또한 사용하면 자료형이 string이 됨!
만약 위와 같이 변수에 담아서 사용하지 않고 숫자에 바로 사용한다면 점 표기법을 사용할 수 없음. 소수점이랑 혼동오기 때문
그래서 숫자에 바로 사용하려면 반드시 점을 두개 찍어주거나, 괄호에 담아서 사용해야함!
255.toString(2); // error
255..toString(2); // 11111111
(255).toString(2); // 11111111
Date객체처럼 자바스크립트의 내장 객체 중 다양한 연산들을 유용하게 사용하기 위해 Math라는 객체가 있음
console.log(Math.abs(-10)); // 10
console.log(Math.abs(10)); // 10
Math.max 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 큰 값이 리턴됨
console.log(Math.max(2, -1, 4, 5, 0)); // 5
Math.min 함수에 파라미터로 여러 수를 넘겨주면, 그중 가장 큰 값이 리턴됨
console.log(Math.min(2, -1, 4, 5, 0)); // -1
x의 y승이 리턴됨
console.log(Math.pow(2, 3)); // 8
x의 제곱근이 리턴됨
console.log(Math.round(2.4)); // 2
console.log(Math.round(2.5)); // 3
floor는 버림, ceil은 올림
console.log(Math.floor(2.8)); // 2
console.log(Math.ceil(2.4)); // 3
0 이상 1 미만의 값이 랜덤으로 리턴
console.log(Math.random()); // 0.07746312983526682
console.log(Math.random()); // 0.05747007039776353
원의 둘레와 지름의 비율(약 3.141592)이 리턴됨
console.log(Math.PI); // 3.141592653589793
'삼각 함수 계산'이나 '로그'같은 더 깊은 수학 계산도 가능
x가 양의 수인지 음의 수인지 나타내는 부호를 반환. 음수면 -1, 양수면 1, 0이면 0 반환
console.log(Math.sign(-231)); // -1
console.log(Math.sign(0)); // 0
console.log(Math.sign(11)); // 1
console.log(Math.trunc(233.2323)); // 233
✨ 프로그래밍 언어의 오류?
0.1 + 0.2와 같은 단순한 계산을 맡겼을 때 반환값이 0.3이 아닌 0.3000000004와 같은 0.3에 근접하는 값을 반환함
이는 컴퓨터가 우리와 다르게 모든 코드를 2진수 즉 0과 1로 바꿔서 계산하기 때문에 0.1과 같은 숫자도 2진수로 변환하다보면 무한소수가 되는 경우가 발생하고, 자바스크립트가 표현할 수 있는 숫자범위 내에서 반올림하게 되어 이런 경우가 발생함
그래서 이런 문제를 해결하기 위해 toFixed를 이용해 1번째까지 표시해서 숫자형으로 바꿔 사용하거나 필요한 만큼 10의 n승을 곱해서 반올림한 후 다시 10의 n승으로 나눠주는 등의 방법을 씀!