[JS] Math 객체의 개념과 대표적인 메서드 11가지

2022. 3. 5. 02:44Front-end/JavaScript

Math란?

표준 Built-in 객체로써 수학적인 연산을 위한 속성 값과 메서드를 제공하는 객체다.

Math는 생성자 함수가 아니며 모든 속성과 메서드는 정적이기에 Math.function()으로 언제든지 호출이 가능하다.


대표 속성(property) 및 메서드(method)

  • 오일러 상수 : Math.E
  • PI : Math.PI
  • 절댓값 : Math.abs(x)
  • 최댓값 : Math.max(x)
  • 최솟값 : Math.min(x)
  • 랜덤 난수 값 : Math.random(x)
  • 제곱/제곱근 : Math.pow(x, y), Math.sqrt(x)
  • 반올림/올림/내림 : Math.round(x), Math.ceil(x), Math.floor(x)

 

최대/최소/절댓값

배열을 인수로 받아 최대/최소 값을 산출하려면 apply 함수 혹은 스프레드 문법을 사용해야 한다.

console.log(Math.max(1, -1)); // 1
console.log(Math.min(1, -1)); // -1

console.log(Math.max(1, -1, 5, 9, 7, -3)); // 9
console.log(Math.min(1, -1, 5, 9, 7, -3)); // -3

let nums = [1, -1, 5, 9, 7, -3];
// apply
console.log(Math.max(nums)); // NaN
console.log(Math.max.apply(null, nums)); // 9
console.log(Math.min.apply(null, nums)); // -3
// spread
console.log(Math.max(...nums)); // 9
console.log(Math.min(...nums)); // -3
// ABS
console.log(Math.abs(1)); // 1
console.log(Math.abs(-1)); // 1
console.log(Math.abs(-Infinity)); // Infinity

 

속성 및 랜덤

0과 1 사이의 난수 랜덤 값 구하기

// property
console.log(Math.E); // 2.718281828459045
console.log(Math.PI); // 3.141592653589793

// random
console.log(Math.random()); // 0.3796014087943276
console.log(Math.random() * 10); // 8.412363987176676
console.log(Number.parseInt(Math.random() * 100)); // 39

for (let i = 0; i < 5; i++) {
  console.log(Number.parseInt(Math.random() * 100));
}
// 53
// 16
// 58
// 76
// 80

 

제곱/제곱근/소수점 처리

제곱 : Math.pow(x, y), 제곱근 : Math.sqrt(x)

반올림 : Math.round(x), 올림 : Math.ceil(x), 내림 : Math.floor(x)

// pow
console.log(Math.pow(2, 3)); // 8
console.log(2 ** 3); // 8

// sqrt
console.log(Math.sqrt(2)); // 1.4142135623730951
console.log(Math.sqrt(4)); // 2

// round, ceil, floor
console.log(Math.round(1.5)); // 2
console.log(Math.round(-1.3)); // -1
console.log(Math.round(-1.7)); // -2

console.log(Math.ceil(1.1)); // 2
console.log(Math.ceil(-1.3)); // -1
console.log(Math.ceil(-1.7)); // -1

console.log(Math.floor(1.9)); // 1
console.log(Math.floor(-1.3)); // -2
console.log(Math.floor(-1.7)); // -2

 

반응형