[JavaScript] 객체 - ② 생성자, ③ 내장객체, ④ 배열

ognatkwak·2022년 10월 29일
post-thumbnail

생성자

생성자로 객체를 생성할 떄는 new 연산자를 사용한다.
new 연산자로 객체를 생성할 것이라 기대하고 만든 함수를 생성자라고 부른다.
첫 글자를 대문자로 쓰는 파스칼 표기법을 사용하고, 생성자 안에서 this.프로퍼티 이름에 값을 대입하면 그 이름을 가진 프로퍼티에 값이 할당된 개체가 생성된다.
이때 this는 생성자가 생성하는 객체를 가르킨다.

생성자의 역할

생성자는 객체를 생성하고 초기화하는 역할을 한다.
생성자를 사용하면 이름은 같지만 프로퍼티 값이 다른 객체 여러개를 간단히 생성할 수 있다.

var card1 = new Card("하트", "A");
var card2 = new Card("클럽", "K");
var card3 = new Card("스페이드", "2");

내장 객체

자바스크립트에는 처음부터 사용할 수 있는 내장 객체가 마련되어 있다.

내장 생성자

생성자 이름생성되는 객체
Object일반 객체
String문자열 객체
Number숫자 객체
Boolean논리값 객체
Array배열
Date날짜와 시간을 다루는 객체
Function함수 객체
RegExp정규 표현식 객체
Error오류 객체
EvalErroreval() 함수와 관련된 오류를 표현하는 객체
InternalError자바스크립트 내부에서 발생한 오류를 표현하는 객체
RangeError값이 허용 범위르 ㄹ넘었을 때 발생한 오류를 표현하는 객체
ReferenceError없는 변수를 참조할 때 발생한 오류를 표현하는 객체
SyntaxError문법이 어긋날 때 발생한 오류를 표현하는 객체
TypeError값이 기대한 타입이 아닐 때 발생한 오류를 표현하는 객체
URIError잘못된 URL를 만났을 때 발생한 오류를 표현하는 객체

배열

배열 리터럴로 생성하기

배열 리터럴은 쉼표로 구분한 값을 대괄호 []로 묶어서 표현한다.

var evens = [2, 4, 6, 8 ];

앞 코드에서 [...] 부분이 배열 리터럴이며 배열 값 하나를 배열 요소라고 부른다.
배열 요소에는 왼쪽부터 순서대로 번호가 매겨져 있다. 요소에 메긴 번호는 요소 번호 또는 인덱스라고 부른다.

length 프로퍼티

배열 요소의 최대 인덱스 값 +1

var evens = [2, 4, 6, 8];
evens.length // -> 4

프로퍼티 값을 가리켜 배열 길이라고 부른다.

var a = ["A", "B", "C", "D"];
a.length = 2;
console.log(a) // -> ["A", "B"]

배열 길이보다 큰 정수 값을 대입하면 배열에 새로운 요소가 추가되지 않고 값만 바뀐다.

Array 생성자로 생성하기

var evens = new Array(2, 4, 6, 8); // -> [2, 4, 6, 8] 생성
var empty = new Array(); // -> 빈 배열 생성
var a = new Array(2, 4); // -> 배열 리터럴 [2, 4] 생성 
var various = new Array(3.14, "pi", true, {x: 1, y:2}, [2, 4, 6, 8]

배열 요소의 참조

특정 인덱스의 요소는 대괄호 연산자를 사용해서 읽거나 쓸 수 있다.

evens[2] // -> 6 (인덱스가 2인 요소, 세번째 요소)

배열 요소의 추가와 삭제

추가

push 메서드를 사용하면 요소 배열 끝에 추가할 수 있다.

var a = ["A", "B", "C"];

// case1
a[3] = D;
console.log(a) // -> ["A", "B", "C", "D"]

//case2 
a.push("D");
console.log(a) // -> ["A", "B", "C", "D"]

삭제

delete 연사자를 사용하면 요소를 삭제해도 그 배열의 length 값은 바뀌지 않고 삭제한 요소만 사라진다.

delete a[1]
console.log(a) // -> ["A", undefined , "C", "D"]

희소배열

배열에 요소를 추가하거나 제거하면 인덱스가 0부터 시작되지 않는 배열이 만들어진다. 이러한 배열을 희소 배열이라고 부른다.

var a = ["A", "B", "C"];
a[4] = D;
console.log(a) // -> ["A", "B", "C", undefined, "E"]

a[3]이 undefined로 표시되지만 실제로 저 요소는 없다.

profile
💃🏻

0개의 댓글