# 숫자

자바스크립트에서 모든 숫자는 8바이트 배정밀도 부동소수형으로 저장됩니다. 숫자에는 ```+Infinity```, ```-Infinity```, ```NaN``` 3개의 특수 값이 포함됩니다.

## Number

```javascript
Number.MAX_VALUE
Number.MIN_VALUE
Number.NaN
Number.NEGATIVE_INFINITY
Number.POSITIVE_INFINITY
Number.EPSILON
Number.MIN_SAFE_INTEGER
Number.MAX_SAFE_INTEGER
```

```javascript
Number.parseFloat()
Number.parseInt()
Number.isFinite()
Number.isInteger()
Number.isNaN()
Number.isSafeInteger()
```

```javascript
toExponential()
```

지수 표기법으로 나타낸 문자열을 반환합니다. 매개 변수에는 소수점 이하 자릿수를 전달합니다.

```javascript
toFixed()
```

고정 소수점 방식으로 표현된 문자열을 반환합니다. 매개 변수에는 소수점 이하 자릿수를 전달하며, 기본 값은 0입니다.

```javascript
toPrecision()
```

유효 자릿수에서 반올림한 문자열을 반환합니다. 매개 변수에는 유효자릿수를 전달합니다.

## Math

```javascript
Math.PI
```

```javascript
/* 절대값 */
Math.abs()
/* 삼각함수 */
Math.sin()
Math.cos()
Math.tan()
Math.asin()
Math.acos()
Math.atan()
Math.atan2()
Math.sinh()
Math.cosh()
Math.tanh()
Math.asinh()
Math.acosh()
Math.atanh()
/* 제곱근 */
Math.pow(a, n) // a의 n승
Math.sqrt(a) // 제곱근
Math.cbrt(a) // 세제곱근
/* 지수와 로그 */
Math.exp()
Math.expm1()
Math.log10()
Math.log1p()
Math.log2()
/* 올림과 내림 */
Math.floor()
Math.ceil()
Math.round()
Math.fround()
Math.trunc()
/* 최소, 최대 */
Math.min(a, ...)
Math.max(a, ...)
/* 랜덤 */
Math.random() // 0 ~ 1 사이의 값을 반환
/* 그 외 */
Math.hypot(a, ...)
Math.sign(a) // 어떤 수의 부호를 반환. 1, 0, -0, -1, NaN 중 하나를 반환. 
Math.clz32(a) // 숫자를 32비트 이진 표현으로 변환 후 앞 쪽의 0의 갯수를 반환
Math.imul(a, b) // 두 숫자의 32비트 정수 곱셈. ECMAScript2015에서 추가되었습니다.
```