강의 노트/JS

[JS deep dive] Math

매망쩔 2023. 4. 16. 18:53

표준 빌트인 객체인 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