FrontEnd/Deep Dive

[JS] DeepDive(29) Math

728x90

표준 빌트인 객체인 Math는 수학적인 상수와 함수를 위한 프로퍼티와 메서드를 제공한다.

 

 

Math.PI

 

원주율 PI 값을 반환한다.

 

Math.PI; // -> 3.141592653589793

 

 

 

 

Math.abs

인수로 전달된 숫자의 절대값을 반환하며 절대값은 0 또는 양수여야 한다.

 

Math.abs(-1);        // -> 1
Math.abs('-1');      // -> 1
Math.abs('');        // -> 0
Math.abs([]);        // -> 0
Math.abs(null);      // -> 0
Math.abs(undefined); // -> NaN
Math.abs({});        // -> NaN
Math.abs('string');  // -> NaN
Math.abs();          // -> NaN

 

Math.round

 

인수로 전달된 숫자의 소수점 이하를 반올림한 정수를 반환한다.

 

Math.round(1.4);  // -> 1
Math.round(1.6);  // -> 2
Math.round(-1.4); // -> -1
Math.round(-1.6); // -> -2
Math.round(1);    // -> 1
Math.round();     // -> NaN

 

 

 

Math.ceil

인수로 전달된 소수점 이하를 올림한 정수를 반환한다.

 

Math.ceil(1.4);  // -> 2
Math.ceil(1.6);  // -> 2
Math.ceil(-1.4); // -> -1
Math.ceil(-1.6); // -> -1
Math.ceil(1);    // -> 1
Math.ceil();     // -> NaN

 

 

 

Math.floor

 

인수로 전달된 숫자의 소수점 이하를 내림한 정수를 반환한다.

 

Math.floor(1.9);  // -> 1
Math.floor(9.1);  // -> 9
Math.floor(-1.9); // -> -2
Math.floor(-9.1); // -> -10
Math.floor(1);    // -> 1
Math.floor();     // -> NaN

 

 

 

 

Math.sqrt

인수로 전달된 숫자의 제곱근을 반환한다.

Math.sqrt(9);  // -> 3
Math.sqrt(-9); // -> NaN
Math.sqrt(2);  // -> 1.414213562373095
Math.sqrt(1);  // -> 1
Math.sqrt(0);  // -> 0
Math.sqrt();   // -> NaN

 

 

Math.random

임의의 난수를 반환하며 0에서 1 미만의 실수를 반환한다.

 

Math.random(); // 0에서 1 미만의 랜덤 실수(0.8208720231391746)

/*
1에서 10 범위의 랜덤 정수 취득
1) Math.random으로 0에서 1 미만의 랜덤 실수를 구한 다음, 10을 곱해 0에서 10 미만의
랜덤 실수를 구한다.
2) 0에서 10 미만의 랜덤 실수에 1을 더해 1에서 10 범위의 랜덤 실수를 구한다.
3) Math.floor로 1에서 10 범위의 랜덤 실수의 소수점 이하를 떼어 버린 다음 정수를 반환한다.
*/
const random = Math.floor((Math.random() * 10) + 1);
console.log(random); // 1에서 10 범위의 정수

 

 

 

Math.pow

첫번째 인수를 밑으로 두번째 인수를 지수로 거듭제곱한 결과를 반환한다.

 

Math.pow(2, 8);  // -> 256
Math.pow(2, -1); // -> 0.5
Math.pow(2);     // -> NaN

 

ES7의 지수 연산자를 사용하는것이 지금은 가독성이 더 좋다.

 

// ES7 지수 연산자
2 ** 2 ** 2; // -> 16
Math.pow(Math.pow(2, 2), 2); // -> 16

 

 

 

 

Math.max

 

전달받은 인수 중에서 가장 큰 수를 반환한다. 인수가 없다면 -Infinity를 반환한다.

 

Math.max(1); // -> 1
Math.max(1, 2); // -> 2
Math.max(1, 2, 3); // -> 3
Math.max(); // -> -Infinity

 

 

배열을 인수로 받으려면 스프레드 문법이나 Function.prototype.apply 메서드를 사용하면 된다.

 

// 배열 요소 중에서 최대값 취득
Math.max.apply(null, [1, 2, 3]); // -> 3

// ES6 스프레드 문법
Math.max(...[1, 2, 3]); // -> 3

 

 

Math.min

전달받은 인수 중에서 가장 작은 수를 반환한다. 인수가 전달되지 않으면 Infinity를 반환한다.

 

Math.min(1); // -> 1
Math.min(1, 2); // -> 1
Math.min(1, 2, 3); // -> 1
Math.min(); // -> Infinity

 

역시 배열을 인수로 받으려면 Function.prototype.apply 메서드 또는 스프레드 문법을 사용해야 한다.

 

// 배열 요소 중에서 최소값 취득
Math.min.apply(null, [1, 2, 3]); // -> 1

// ES6 스프레드 문법
Math.min(...[1, 2, 3]); // -> 1

 

 

 

728x90

'FrontEnd > Deep Dive' 카테고리의 다른 글

[JS] DeepDive(31) RegExp  (0) 2023.09.05
[JS] DeepDive(30) Date  (0) 2023.09.04
[JS] DeepDive(28) Number  (1) 2023.09.03
[JS] DeepDive(27) 배열  (0) 2023.09.01
[JS] DeepDive(26) ES6함수의 추가기능  (0) 2023.08.27