JavaScript 입문 | 표준 객체 | Math 객체

Math 객체

Math 객체는 수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 자바스크립트 표준 내장 객체이다.

Math 객체는 다른 전역 객체와는 달리 생성자(constructor)가 존재하지 않는다. 따라서 따로 인스턴스를 생성하지 않아도 Math 객체의 모든 메소드나 프로퍼티를 바로 사용할 수 있다.

Math 메소드

자바스크립트는 웹 페이지에서 수학적 작업을 손쉽게 할 수 있도록 다양한 Math 메소드를 제공하고 있다. 가장 많이 사용되는 대표적인 Math 메소드는 다음과 같다.

  1. Math.min()
  2. Math.max()
  3. Math.random()
  4. Math.round()
  5. Math.floor()
  6. Math.ceil()
  7. Math.sin()

대부분의 Math 메소드는 웹 브라우저마다 다른 결과 값을 얻을 가능성이 높다. 심지어 같은 자바스크립트 인터프리터라도 운영체제가 다르면 다른 결과 값을 반환할 수 있다. 따라서 아주 정확한 결과 값이 필요한 작업에는 Math 메소드는 사용하지 않는 것이 좋다.

Math.min() 메소드

Math.min() 메소드는 인수로 전달받은 값 중에서 가장 작은 수를 반환한다. 인수가 전달되지 않으면 Infinity를 반환하며, 인수 중에 비교할 수 없는 값이 포함되어 있으면 NaN을 반환한다.

Math.min();                              // Infinity
Math.min(1, 10, -100, -10, 1000, 0);     // -100
Math.min(1, 10, -100, -10, "-1000", 0);  // -1000
Math.min(1, 10, -100, -10, "문자열", 0); // NaN

Math.max() 메소드

Math.max() 메소드는 인수로 전달받은 값 중에서 가장 큰 수를 반환한다. 인수가 전달되지 않으면 -Infinity를 반환하며, 인수 중에 비교할 수 없는 값이 포함되어 있으면 NaN을 반환한다.

Math.max();                              // -Infinity
Math.max(1, 10, -100, -10, 100, 0);      // 100
Math.max(1, 10, -100, -10, "1000", 0);   // 1000
Math.max(1, 10, -100, -10, "문자열", 0); // NaN

Math.random() 메소드

Math.random() 메소드는 0보다 크거나 같고 1보다 작은 무작위 숫자(random number)를 반환한다.

var min = 10, max = 20;
Math.random();                     // [0, 1)
Math.random() * (max - min) + min; // [min, max)

위의 예제에서 사용된 ‘[‘기호는 ‘크거나 같은’을 나타내며, ‘]‘기호는 ‘작거나 같은’을 나타내는 기호이다.
또한, ‘(‘기호는 ‘보다 큰’을 나타내며, ‘)‘기호는 ‘보다 작은’을 나타내는 기호이다.

Math.round() 메소드

Math.round() 메소드는 인수로 전달받은 값을 소수점 첫 번째 자리에서 반올림하여 그 결과 값을 반환한다.

Math.round(10.49);  // 10
Math.round(10.5);   // 11
Math.round(-10.5);  // -10
Math.round(-10.51); // -11

Math.floor() 메소드

Math.floor() 메소드는 인수로 전달받은 값과 같거나 작은 수 중에서 가장 큰 정수를 반환한다.

Math.floor(10.95);  // 10
Math.floor(11.01);  // 11
Math.floor(-10.95); // -11
Math.floor(-11.01); // -12

Math.ceil() 메소드

Math.ceil() 메소드는 인수로 전달받은 값과 같거나 큰 수 중에서 가장 작은 정수를 반환한다.

Math.ceil(10.95);  // 11
Math.ceil(11.01);  // 12
Math.ceil(11);     // 11
Math.ceil(-10.95); // -10
Math.ceil(-11.01); // -11

Math.sin() 메소드

Math.sin() 메소드는 인수로 전달받은 값의 사인(sine) 함숫값을 반환한다.

Math.sin(0);           // 0
Math.sin(Math.PI / 2); // 1

자바스크립트에서 제공하는 삼각 함수에 관한 모든 메소드는 각도의 단위로 라디안(radian)을 사용한다. 이때 라디안 단위와 60분법 단위를 서로 변환하기 위해서는 다음과 같은 공식을 사용한다.

문법

라디안값 = 60분법값 * (Math.PI / 180)

Math.PI는 수학에서 사용하는 파이(π)값을 나타내는 자바스크립트 상수이다.
따라서 대략적인 값으로 3.145159를 나타낸다.