Language/Javascript

[Javascript] 자바스크립트 표준 객체 - Math 객체와 메소드

재은초 2023. 8. 2. 22:24
반응형

Math 객체

  • Math 객체는 수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 자바스크립트 표준 내장 객체다.
  • Math 객체는 다른 전역 객체와는 달리 생성자(constructor)가 존재하지 않으므로, 따로 인스턴스를 생성하지 않아도 Math 객체의 모든 메소드나 프로퍼티를 바로 사용할 수 있다.

 

Math 프로퍼티

Math.E 오일러의 수(Euler's constant)라고 불리며, 자연로그(natural logarithms)의 밑(base) 값 2.718
Math.LN2 2의 자연로그 값 0.693
Math.LN10 10의 자연로그 값 2.303
Math.LOG2E 오일러 수(e)의 밑 값이 2인 로그 값 1.443
Math.LOG10E 오일러 수(e)의 밑 값이 10인 로그 값 0.434
Math.PI 원의 원주를 지름으로 나눈 비율(원주율) 값 3.14159
Math.SQRT1_2 2의 제곱근의 역수 값 0.707
Math.SQRT2 2의 제곱근 값 1.414

 

Math 메소드

  • Math 메소드는 웹 브라우저마다 다른 결괏값을 얻을 가능성이 높아서 아주 정확한 결괏값이 필요한 작업에는 Math 메소드는 사용하지 않는 것이 좋다.

Math.abs() 메소드

  • 인수의 절댓값(absolute value)을 반환한다. 절댓값은 반드시 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.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보다 작은 무작위 숫자를 반환한다.
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(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.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) 함숫값을 반환한다.
  • 자바스크립트에서 제공하는 삼각 함수에 관한 모든 메소드는 각도 단위로 라디안을 사용하며, 라디안 단위와 60분법 단위를 서로 변환하기 위해서는 아래 공식을 사용한다.
라디안값 = 60분법값 * (Math.PI / 180)
// Math.PI는 파이(π)값을 나타내는 자바스크립트 상수로 대략적으로 3.145159를 나타냄
Math.sin(0);           // 0
Math.sin(Math.PI / 2); // 1

Math.sqrt() 메소드

  • 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.pow() 메소드

  • Math.pow() 메소드는 첫번째 인수를 밑(base), 두번째 인수를 지수(exponent)로하여 거듭제곱을 반환한다.
Math.pow(2, 8);  // 256
Math.pow(2, -1); // 0.5
Math.pow(2);     // NaN

// ES7(ECMAScript 2016) Exponentiation operator(거듭 제곱 연산자)
2 ** 8; // 256

 

Reference

반응형