표준 빌트인 객체인 Math는 수학적인 상수와 함수를 위한 프로퍼티와 메서드를 제공한다. Math는 새엇ㅇ자 함수가 아니다. 따라서 정적프로퍼티와 정적 메서드만 제공한다.
Math 프로퍼티
Math.pi : 원주율 PI값을 반환한다.
Math 메서드
NaN으로 반환되는 값들 : () (undefined) ({}) ("문자들")
1. Math.abs
인수로 전달된 숫자의 절대값을 반환함. (0, 양수, NaN).
console.log(Math.abs(-1)); //1
console.log(Math.abs("-1")); //1
console.log(Math.abs(null)); //0
console.log(Math.abs([])); //0
console.log(Math.abs("")); //0
// NaN인 값들
console.log(Math.abs());
console.log(Math.abs(undefined));
console.log(Math.abs({}));
console.log(Math.abs("string"));
2. Math.round
인수로 전달된 숫자의 소수점 이하를 반올림한 정수를반환한다.
console.log(Math.round(-1)); //1
console.log(Math.round("-1")); //1
console.log(Math.round(null)); //0
console.log(Math.round([])); //0
console.log(Math.round("")); //0
console.log(Math.round(-1.6)); //-2
console.log(Math.round(1.6)); //2
// NaN인 값들
console.log(Math.round()); //NaN
3. Math.ceil
인수로 전달된 숫자의 소수점 이하를 올림한 정수를 반환한다. 소수점 이하를 올림하면 더 큰 정수가 된다
4.Math.floor
인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환한다. 소수점 이하를 올림하면 더 작은 정수가 된다
5. Math.sqrt
인수로 전달된 숫자의 제곱근을 반환한다.
음수일 경우 NaN
6. Math.random
임의의 난수를 반환한다. Math.random 메서드가 반환하는 난수는 0~1 미만의 실수다. 0은 포함 1은 포함안됨
7.Math.pow
첫 번쨰 인수를 밑으로 , 두 번쨰 인수를 지수로 거듭 제곱한 값을 반환한다.
ES7에서 도입된 지수 연산자를 사용하는 것이 가독성이 더 좋다
console.log(Math.pow(2, 8)); // 256
console.log(Math.pow("2", "8")); // 256
console.log(Math.pow(2, [])); //1
console.log(Math.pow(2)); //NaN
console.log(Math.pow({}, 2)); //NaN
console.log(Math.pow(2, {})); //NaN
8. Math.max
전달받은 인수중에서 가장 큰 수를 반환한다. 인수가 전달되지 않으면 -Infinity를 반환한다.
배열을 인수로 전달받아 배열의 요소중 최대값을 구할려면 Function.prototype.apply 메서드 혹은 전개 연산자를 사용해야 한다.
console.log(Math.max(1)); //1
console.log(Math.max(1, 2)); //2
console.log(Math.max("1", "2")); //2
console.log(Math.max("sstirng", "", 1)); //NaN
console.log(Math.max("", [], 1)); //1
console.log(Math.max("", [])); //1
console.log(Math.max(...[1, 2, 3])); //3
console.log(Math.max.apply(null, [1, 2, 3])); //3
9. Math.min
전달받은 인수중에서 가장 작은 수를 반환한다. 인수가 전달되지 않으면 Infinity를 반환한다.
'강의 노트 > JS' 카테고리의 다른 글
| [JS deepdive] RegExp (0) | 2023.04.18 |
|---|---|
| [JS deep dive] Date (0) | 2023.04.17 |
| [JS deep dive] Number (0) | 2023.04.16 |
| [JS deep dive] 배열 (0) | 2023.04.14 |
| [JS deep dive] ES6 함수의 추가 기능 (0) | 2023.04.11 |