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(2, 3); // 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(3, 2); // 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(1, 5, 3, 4); // 최대값 5 Math.min(1, 5, 3, 4); // 최소값 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 |
ㄴㅁㅇㅇㅇㅇ