자바스크립트 - Math 객체
우리는 프로그램을 작성할 때 수학적인 연산을 프로그램으로 구현해야하는 경우가 많습니다.
자바스크립트에서는 Math 객체를 사용하면 숫자에 대한 수학적 연산을 복잡한 구현없이 편리하게 수행할 수 있습니다.
Math 객체에서 지원하는 메소드의 종류는 다음과 같습니다.
메소드(Method) | 내용 |
Math.round(x) | 입력된 x의 값을 가장 가까운 정수로 반올림 |
Math.pow(x, y) | x의 값을 y의 거듭제곱으로 변환 (ex. Math.pow(8, 2) == 64) |
Math.sqrt(x) | x의 제곱근을 반환 |
Math.abs(x) | x의 절댓값을 반환 |
Math.ceil(x) | x의 값을 올림 |
Math.floor(x) | x의 값을 내림 |
Math.sin(x) | 각도 x 만큼의 sin 값을 반환(radian 값) |
Math.cos(x) | 각도 x 만큼의 cos 값을 반환(radian값) |
Math.min(x1, x2, ...) | 인자로 전달된 수 중에서 최소값을 반환 |
Math.max(x1, x2 ...) | 인자로 전달된 값 중에서 최대값을 반환 |
Math.random() | 0(포함)과 1(제외) 사이의 난수를 발생 (뒤에서 구체적으로 다룸) |
(위의 표는 Math의 모든 메소드를 제시한 것이 아니며 더 많은 메소드가 존재합니다.)
Math.random() 과 관련해서 기억할 것
Math.random() 메소드는 0(포함)과 1(제외) 사이의 난수를 반환합니다. 그렇기 때문에 Math.random()의 실행결과는 항상
1보다 작은 수를 반환하게 됩니다.
랜덤으로 정수를 출력하기(원하는 범위의)
그렇다면 원하는 범위 내에서 난수를 발생시키기 위해서는 어떻게 해야할까요?
Math.floor()와 Math.random()을 함께 사용하면 원하는 범위 내의 임의의 정수를 반환하도록 만들 수 있습니다.
Math.floor(Math.random() * 10); // 0 ~ 9 사이의 정수 중에서 임의의 정수를 반환 Math.floor(Math.random() * 11); // 0 ~ 10 사이의 정수 중에서 임의의 정수를 반환 Math.floor(Math.random() * 100); // 0과 99 사이의 정수 중에서 임의의 정수를 반환 Math.floor(Math.random() * 101); // 0과 100 사이의 정수 중에서 임의의 정수를 반환 Math.floor(Math.random() * 10) + 1; // 0 ~ 10 사이의 정수 중에서 임의의 정수를 반환 Math.floor(Math.random() * 100) + 1; // 0 ~ 100 사이의 정수 중에서 임의의 정수를 반환
위의 3가지 예시와 그 주석을 함께 참고하면 어떠한 방식으로 난수를 발생시키는 범위를 지정할 수 있는 지
이해할 수 있을 것입니다.
임의의 정수를 반환하는 random 함수를 만들기
특정 범위에서 난수를 발생시키는 random 함수를 다음과 같이 구현하여 사용하는 것이 편리합니다.
function getRandInteger(min, max) { return Math.floor(Math.random() * (max - mix)) + min; }
-> 인자로 전달받은 min(포함)과 max(제외) 사이의 난수를 반환합니다.
function getRandInteger(min, max) { return Math.floor(Math.random() * (max - mix + 1)) + min; }
-> 인자로 전달받은 min(포함)과 max(포함) 사이의 난수를 반환합니다.
또한 Math 객체에서는 8개의 수학적 상수를 제공합니다.
상수 | 내용 |
Math.E | 오일러 수(e) |
Math.PI | 원주율(π) |
Math.SQRT2 | 2의 제곱근(√2) |
Math.SQRT1_2 | 1/2의 제곱근 (√(1/2)) |
Math.LN2 | 2의 자연로그 값 |
Math.LN10 | 10의 자연로그 값 |
Math.LOG2E | e의 밑이 2인 로그 값 |
Math.LOG10E | e의 밑이 10인 로그 값 |
Math 생성자
다른 객체와 달리 Math 객체는 생성자가 존재하지 않습니다. 즉, Math객체의 메소드와 속성은 정적입니다.
Math 객체를 먼저 만들지 않고도 모든 메서드와 속성(상수)를 사용하는 것이 가능합니다.
'Web Basic > JavaScript' 카테고리의 다른 글
자바스크립트 - 정규식(Regular Expressions) (0) | 2020.07.28 |
---|---|
자바스크립트 - 반복문, break, continue (0) | 2020.07.28 |
자바스크립트 - 날짜 객체 (Date Object) (0) | 2020.07.28 |
자바스크립트 - 배열(Array) (0) | 2020.07.28 |
자바스크립트 문자열(String) (0) | 2020.07.27 |
댓글
이 글 공유하기
다른 글
-
자바스크립트 - 정규식(Regular Expressions)
자바스크립트 - 정규식(Regular Expressions)
2020.07.28정규식(Regular Expressions) 정규식은 검색패턴을 형성하는 일련의 문자를 말하는 것으로서 이 검색패턴은 문자열에서 특정 텍스트를 조회하거나 변경할 때 유용하게 사용할 수 있습니다. 정규식은 단일 문자이거나 더 복잡한 패턴일 수 있습니다. 자바스크립트에서 이 정규식 또한 객체로 분류 됩니다. 자바스크립트에서 사용하는 정규식은 다음의 형식을 가집니다. /pattern/modifiers; 정규식의 사용 자바스크립트에서 정규식은 문자열에 사용되는 메소드 search(), replace()와 함께 많이 사용됩니다. search()와 replace()가 동작하는 데 기본적으로 문자열에 대한 탐색이 진행되기 때문인데 여기에 정규식을 결합하면 보다 더 유연하고 융통성 있게 코드를 작성하는 것이 가능해 집… -
자바스크립트 - 반복문, break, continue
자바스크립트 - 반복문, break, continue
2020.07.28자바스크립트에서도 반복해야할 작업들을 효율적으로 처리할 수 있는 반복문을 지원합니다. 반복문의 내용은 다른 프로그래밍 언어(C, C++, Java 등)에서의 내용과 거의 동일합니다. 그렇기 때문에 이번 글에서는 다른 프로그래밍 언어에서의 반복문과 자바스크립트에서의 반복문과의 구별되는 내용, 그리고 반복문과 깊은 관계를 가지는 break, continue 문에 대해서 다루도록 하겠습니다. For / In Loop 일반 for 문과 유사한 반복문이며, 객체의 속성을 반복할 때 유용하게 사용할 수 있습니다. var person = {fname:"John", lname:"Doe", age:25}; var text = ""; var x; for (x in person) { text += person[x]; } F… -
자바스크립트 - 날짜 객체 (Date Object)
자바스크립트 - 날짜 객체 (Date Object)
2020.07.28Date 객체 다음과 같이 자바스크립트에서 Date 객체를 사용하면 현재 시간정보를 사용할 수 있습니다. 기본적으로 자바스크립트는 웹브라우져의 시간대를 사용하고 날짜 전체 텍스트를 문자열로 표시합니다. var date = new Date(); 위의 코드처럼 Date객체를 이용해서 현재 시간정보를 가져오면 변수 객체 date에 현재 시간에 대한 정보가 다음의 형식으로 저장됩니다. Date 객체 생성 Date 객체는 new Date() 생성자를 이용해서 만들어 집니다. 새로운 날짜 객체를 만드는 방법에는 4가지가 있습니다. new Date() new Date(year, month, day, hours, minutes, seconds, milliseconds) new Date(milliseconds) new … -
자바스크립트 - 배열(Array)
자바스크립트 - 배열(Array)
2020.07.28배열(Array) 자바스크립트에서 배열은 다음과 같이 단일 변수에 여러개의 값을 저장할 때 사용합니다. var fruit = ["Apple", "Melon", "Banana"]; 배열은 한 번에 둘 이상의 값을 가질 수 있는 특수한 변수로서 많은 양의 값을 하나의 변수에 저장할 수 있고 인덱스를 바탕으로 배열에 저장된 값들에 접근할 수 있습니다. 배열을 만들기 배열을 만들때는 다음과 같은 구조로 코드를 작성합니다. var array_name = [item1, item2, ….]; 객체를 정의할 때와 마찬가지로 공백과 줄바꿈은 크게 중요하지 않으며 코드의 가독성을 높이기 위해 다음과 같이 작성해도 무방합니다. var array_name = [ item1, item2, item3 ]; 또한 다음과 같이 n…
댓글을 사용할 수 없습니다.