에르노트

[자바스크립트] 코어 라이브러리 정리 본문

Web/Javascript

[자바스크립트] 코어 라이브러리 정리

두콩 2020. 8. 15. 17:42

Javascript

 

  1. Math 클래스
  2. String 클래스
  3. Date 클래스

Math 클래스

 

Math

Math is a built-in object that has properties and methods for mathematical constants and functions. It’s not a function object.

developer.mozilla.org

자바에서처럼 자바스크립트의 Math 라이브러리는 static 클래스(모든 프로퍼티와 메서드가 static)이다. 그래서 객체 생성 과정 없이 바로 Math.func() 형태로 사용할 수 있다. 여타 언어가 제공하는 수학 관련 클래스와 마찬가지로 자연상수 e나 원주율 pi 등의 상수를 제공하며 절대값이나 제곱근 및 랜덤 등의 연산도 제공한다. 또 sin, cos, tan의 기본 삼각함수는 물론 역삼각함수나 쌍곡함수까지도 지원해서 미분적분학에 등장하는 기본 연산까지는 이걸로 커버할 수 있을 것 같다. 유리화(Rationalize)나 미분(Derivative)같은 좀 더 복잡한 계산을 하고 싶다면 mathjs라는 외부 라이브러리를 이용하면 된다.

 

사실 아래와 같은 단순 계산을 하고자한다면 그냥 공학용 계산기를 두들기는 편이 빠르겠지만..  절대값이나 랜덤 등은 실제 프로젝트에서도 정말 많이 쓰이기 때문에 Math 라이브러리 자체는 매우 요긴할 것이다.

console.log("cos π= " + Math.cos(Math.PI));
console.log("cos 2π= " + Math.cos(Math.PI * 2));

Math 클래스 예제

 

String 클래스

 

String

The String object is used to represent and manipulate a sequence of characters.

developer.mozilla.org

명실상부 String. 개인적으로 c++혹은 java가 c에 비해 갖는 여러 이점 중 가장 마음에 드는 부분이 string이라는 문자열 클래스를 제공한다는데 있다고 생각한다. 그만큼 string은 쓸모 있고 알아둘 필요가 있는 클래스라고 할 수 있다.

 

자바스크립트의 기본 코어 라이브러리로서 String이 제공되고, 변수에 문자열을 저장하면 자동으로 String을 이용해서 저장되기 때문에 우리는 생성자 호출 없이 편하게 문자열을 다룰 수 있다. 즉, 다음 두 줄은 일반적으로 동일하게 동작한다.

var a = "a";
var a = String("a");

재밌는 것은 new 키워드를 붙여서 string에 대해 아예 새로운 객체를 생성하면 string이라는 primitive type이 아니라 String 클래스를 인스턴스화한 object으로 구분한다는 점이다.

 

var a = 'a';
var b = new String(a);

console.log('--- a,b 그대로 출력 ---')
console.log(a); //a
console.log(b); //[String: 'a']

console.log('\n--- a,b의 타입 출력 ---')

console.log(typeof a); //string
console.log(typeof b); //object

string vs object

String 클래스에 포함된 메서드들은 매우 강력하다. 문자열을 합치고, 자르고, 특정 문자의 인덱스를 뽑아내고.. 심지어는 정규식을 적용할 수도 있다. 메소드 명이나 용법 등은 여타 언어들과 크게 다르지 않은데 특히 자바와 매우 유사하다고 느꼈다.

 

var str = "javascript";

console.log(str.substr(2,4)); //2번째 인덱스부터 4글자 추출: vasc
console.log(str.substring(2,4)); //2번째 인덱스부터 (4-1)번째 인덱스까지 추출: va

일례로 문자열에서 특정 범위만을 뽑아내는 메서드로는 substr과 substring이 있다. 이 둘에는 미묘한 차이가 있는데, substr(a, b)가 a번째 문자부터 b만큼을 추출한다면 substring(a,b)는 a번째 문자부터 b-1번째 문자까지를 추출해낸다. 이처럼 미묘하게 다른 다양한 메서드들이 제공되므로 적재적소에 맞게 활용한다면 문자열에 대해 보다 세밀한 제어가 가능할 것이다.

 

Date 클래스

 

Date

JavaScript Date objects represent a single moment in time in a platform-independent format.

developer.mozilla.org

Date 클래스는 이름 그대로 날짜 및 시간과 관련된 유용한 기능들을 제공한다. 그래서 달력을 만들거나, 간단하게 D-Day를 계산할 때도 요긴하게 쓰일 것이다. 

 

주요 메서드를 정리하면 다음과 같다.

getDate() 로컬시간을 사용하여 일(월 기준)을 반환
getDay() 로컬시간을 사용하여 일(주 기준, 즉 요일)을 반환
getFullYear()  로컬시간을 사용하여 연도를 반환
getHours()  로컬시간을 사용하여 시간을 반환
getMilliseconds()  로컬시간을 사용하여 밀리초를 반환
getMinutes()  로컬시간을 사용하여 분을 반환
getMonth()  로컬시간을 사용하여 월을 반환
getSeconds() 로컬시간을 사용하여 초를 반환
getTime() 1970년 1월 1일 00:00:00 부터 현재시간 까지 경과한 시간을 밀리초로 반환
setTime() 날짜와 시간 값을 설정

 

따라서 Date 객체는 다음과 같이 사용될 수 있다.

var objDate = new Date();

var hours = objDate.getHours();
var minutes = objDate.getMinutes();
var seconds = objDate.getSeconds();
var millseconds = objDate.getMilliseconds();

console.log("현재 시각: " + hours + ":" + minutes + ":" + seconds + "." + millseconds);				

Date 클래스 예제

Comments