티스토리 뷰

Javacript

자바스크립트 내장객체 Math

선즈반 2018. 6. 5. 11:46

JavaScript의 표준, 내장(built-in) 객체 중 Math의 속성 및 메서드를 정리하려고 한다.


설명


1
2
3
4
5
다른 전역 객체들과 달리, Math는 생성자가 아니다. 
Math 객체의 모든 프로퍼티와 메서드는 정적(static) 하다. 
당신은 Math.PI로 상수 파이 값을 참조할 수 있고 x라는 메소드 인자로 Math.sin(x)를 
호출해 싸인 함수값을 얻을 수 있다. 
지바스크립트에서 상수들은 완전 정밀도(full precision)의 실수로 정의되어 있다.




여기서 생성자가 아니고 정적이라고 설명한 이유는 new 키워드로 인스턴스를 생성하지 않아도 사용할 수 있다는 얘기다.

예를 들면 아래와 같다.


1
2
3
4
5
6
7
// new 키워드를 사용해서 인스턴스 객체 생성(생성자 호출)
var oToday = new Date(); 
var sYear = oToday.getFullYear();
 
// new 키워드로 생성 없이 바로 사용.
var iPIValue = Math.PI; // 원주율 iPTValue = 3.14....
var iPowValue = Math.pow(23); // 2의 3승  iPowValue = 8






*생성자를 가진 객체(Date)를 Math 객체처럼 사용 시 본래의 의도와는 다르게 동작하는것을 볼 수 있다.


1
2
3
4
5
6
7
8
9
10
11
// new 키워드 없이 Date를 aa에 할당하면 function 자체가 할당됨.
var aa = Date;
ƒ Date() { [native code] }
 
// new 키워드 없이 Date()를 할당하면 오늘 날짜의 String이 할당됨.
var bb = Date();
"Tue Jun 05 2018 10:08:07 GMT+0900 (한국 표준시)"
 
// new 키워들 사용 시 인스턴스 객체가 할당됨
var cc = new Date();
Tue Jun 05 2018 10:08:16 GMT+0900 (한국 표준시)




Math 객체에서 자주 사용하는 메소드를 위주로 정리했다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Math.pow(32);            // 3의 2승 
9    
Math.round(1.6);        // 반올림
2
Math.round(2.4);        // 반올림
2
Math.ceil(2.4);            // 올림
3
Math.floor(1.6);        // 내림
1
Math.abs(-5);            // 절대값
5
Math.abs(5);            // 절대값
5
Math.max(1534);    // 최대값
5
Math.min(1534);    // 최소값
1
Math.trunc(23.65);        // 소숫점 이하를 버리고 정수만 
23
Math.PI;                // 파이값
3.141592653589793
 
// 랜덤값은 메소드를 호출할 때마다 달라진다(0과 1사이에 임의의 수(난수)를 반환)
Math.random();
0.19814769302518842
Math.random();
0.381502029006237
Math.random();
0.0034772080718916687
Math.random();
0.2525352683254163
Math.random();
0.7437368036930072
 
// 소숫점으로 반환하기 때문에 보통 사용할 때 필요한 자리수만큽 곱해서 버리거나 올려서 사용한다.
// 예를 들어 100을 곱해주면 0과 100사이의 임의의 수를 구할 수 있다.
Math.ceil(Math.random()*100)
15
Math.ceil(Math.random()*100)
2




ㄴㅁㅇㅇㅇㅇ


댓글