사용할 기능을 정의한 일반 함수와 생성자 함수 사이에 특별한 문법적 차이는 존재하지 않는다.
즉, 함수는 생성자 역할을 할 수 있다. 단, 생성자 함수는 객체생성을 목적으로 만드는 것이다.
생성자를 사용한다면 자바스크립트가 제공하지 않는 유형의 데이터를 창조할 수 있다.
생성자 함수 정의 시 this 키워드는 객체 그 자신을 의미한다.
this를 이용해 해당 객체의 속성이나 메소드를 추가할 수 있다.
new 연산자
생성자 함수는 ‘객체를 이렇게 만들겠습니다’에 대한 정의일 뿐이며,
실제 객체가 생성되기 위해서는 new 연산을 통해 객체를 반환해야 한다.
자바 스크립트에는 new 키워드를 붙여서 호출하면 객체가 만들어지는 함수들이 미리 정의되어 있다.
이것을 적절히 이용하면 유용한 기능을 손쉽게 구현할 수 있다.(표준 라이브러리)
생성자 함수는 ‘설계도’의 역할을 한다. 따라서 생성자 함수 하나로 객체를 여러 개 만들 수도 있다.
생성자 함수를 정의할 때, 매개변수를 지정하고 생성 시 매개변수를 같이 입력해주면 된다.
기본 생성자 Date
내장 생성자, 빌트인 객체(built-in object)라고도 한다.
자바스크립트는 처음부터 사용할 수 있는 기본 객체 및 생성자를 제공하는데,
그중 대표적인 내장 생성자가 바로 날짜와 시간에 대한 표현하는 Date 이다.
처음 사용한 window.console의 window 역시 내장 객체이다.
Date
Date는 날짜와 시간을 처리하는 다양한 메소드가 정의된 내장 생성자이다.
Date를 통한 객체 생성은 다음과 같은 형태로 이루어진다.
Date 객체 주요 메소드
타이머
setTimeout
setTimeout은 정해진 시간이 지나고 나면 주어진 함수를 실행 해주는 타이머 메소드이다.
setInterval
setInterval는 일정한 시간 간격에 따라 함수를 반복 실행할 수 있도록 해주는 타이머 메소드이다.
clearInterval
setInterval 메소드가 호출되어 반복 실행할 함수 타이머를 등록하면, 타이머는 0이 아닌 숫자를 반환한다.
숫자는 타이머의 ID를 의미하며, 이를 clearInterval 메소드에 전달하면 해당 타이머의 반복 실행이 취소된다.
Element.classList
웹 요소(Element)로부터 클래스 콜렉션을 반환하는 읽기 전용 속성이다.
classList를 이용하면 요소의 클래스 이름, 개수를 확인할 수 있다.
클래스 콜렉션 관련 메소드
배열
배열은 여러 개의 데이터를 보관하는 ‘주머니’ 역할을 하는 객체이다.
이전까지 변수(또는 상수)에는 데이터를 하나씩만 대입할 수 있었지만, 배열을 사용하면 여러 개의 데이터를 대입할 수 있다.
배열을 만드는 방법
첫 번째 방법, 배열 리터럴로 생성한다.
이 경우 쉼표로 구분한 값들을 대괄호로 묶어서 표현한다.
두 번째 방법, Array 생성자로 생성한다.
배열을 만드는 데 사용하는 기본 내장 생성자가 존재한다.
배열의 특징
배열에 포함된 값 하나하나를 ‘배열 요소’라고 한다.
각 배열 요소는 왼쪽부터 순서(번호)가 매겨진다. 이를 ‘인덱스 번호’라 한다.
인덱스 번호는 0부터 시작한다.
배열 요소 수는 원하는 개수만큼 포함시킬 수 있으며, 0개일 수도 있다. (비어있는 배열도 가능하다.)
다양한 유형의 데이터를 포함할 수 있다. 숫자, 문자열, 객체 등…
대괄호([]) 연산자를 이용해서 특정 인덱스 번호의 배열 요소를 참조할 수 있다.
참조할 수 있다는 것은 곧 읽거나 쓸 수 있다는 것을 의미한다. (변수역할)
배열 메소드
이 외에 많은 메소드들이 있다.
내장 객체 Math
Math는 수와 관련된 속성과 메소드를 가진 내장 객체이다. 생성자가 아니다.
Math의 메소드들
내용 정리
•삼항 연산은 세 개의 항을 이용해 결과를 반환하는 연산이다. •삼항 연산식 또는 삼항 조건 연산식이라고도 부른다. •첫 번째 항인 조건식의 결과에 따라 남은 두 항 중 하나를 반환한다.
•객체란 ‘값 또는 기능을 가지고 있는 데이터’이다. •생성자란 객체를 생성할 때 사용하는 함수로서, ’생성자 함수’라고도 한다. •생성자 함수는 설계도의 역할을 하는 것이며, 실제 객체가 생성되기 위해서는 new 연산을 통해 객체를 반환해야 한다. •생성자 함수 하나로 객체를 여러 개 만들 수도 있다.
•자바스크립트는 처음부터 사용할 수 있는 기본 객체 및 생성자를 제공한다. •Date는 날짜와 시간을 처리하는 다양한 메소드가 정의된 내장 생성자이다. •Date 객체 생성 시에 new 연산을 해야 하며, 생성자 함수에 인자를 전달하여 원하는 시간으로 객체를 초기화할 수 있다. •Date 객체는 초기화 시에 정의된 날짜와 시간을 다루는 메소드들을 포함하고 있다.
•setTimeout 메소드는 정해진 시간이 지나고 나면 주어진 함수를 실행한다. •setInterval 메소드는 시간 간격에 따라 주어진 함수를 반복 실행한다. •setInterval 메소드는 0이 아닌 숫자를 반환하는데, 이는 타이머의 ID이다. •clearInterval 메소드는 주어진 ID에 해당하는 타이머를 제거한다(멈춘다).
•classList는 요소로부터 클래스 콜렉션을 반환하는 읽기 전용 속성이다. •반환된 클래스 콜렉션은 유용한 메소드를 다수 포함하고 있다. •일반적으로 toggle은 있으면 제거하고, 없으면 생성한다는 의미이다.
•배열은 여러 개의 데이터를 선형적으로 보관하는 객체이다. •배열 리터럴 또는 배열 생성자를 이용해 생성할 수 있다. •배열 요소는 0부터 순서를 매기며, 이를 인덱스 번호라 한다. •인덱스 번호를 통해 각 배열 요소를 참조할 수 있다. •배열 요소는 원하는 개수만큼 포함할 수 있다.