[javascript] Array

HyungJun Seo·2021년 5월 24일
0
post-thumbnail

배열(Array)

배열


엄청 편한 배열을 사용하는 법을 숙지해보자.


배열 생성방법

배열 리터럴을 사용

// 배열 생성 (빈 배열)
var arr1 = []; 

// 배열 생성 (초기값)
var arr2 = [1,2,3]; 

// 배열 생성 (배열 크기)
var arr3 = [,,,,]; // 값은 할당되어 있지 않음

Array() 생성자 함수로 배열을 생성

// 배열 생성 (빈 배열)
var arr1 = new Array();

// 초기값을 지정하여 생성
var arr2 = new Array(1,2,3);

// 배열 크기를 지정하여 생성
var arr3 = new Array(3);

배열 리터럴을 사용하여 생성하는 방법과 Array() 생성자 함수를 사용하여 생성하는 방법의 거의 동일하다. 배열 리터럴을 사용하여 배열을 생성하더라도 내부적으로 Array() 생성자 함수를 사용하여 생성하므로 기능상의 차이는 없으며, 배열 리터를이 조금 더 간소화된 문법이다.
자바스크립트에서는 배열을 사용 시 배열 리터럴([])을 사용할 것을 권장 한다.

literal의 사용을 권장하는데는 몇가지 이유가 있다.
1. 리터럴이 간견하다
2. 자바스크립트 객체가 클래스 문법으로 생성된다는 오해 방지
3. 생성자 함수는 인자를 받을 수 있는데, 부작용(사이드 이펙트)의 우려가 있음
4. 생성자를 안 쓰면 유효 범위 판별 작업도 발생하지 않음

자바스크립트 배열이 다른 언어와 다른점

  • 배열 내부의 데이터 타입이 서로 다를 수 있다.
  • 배열의 크기는 동적으로 변경될 수 있다.

배열 요소

array.map(function(x){조건})

var array = [1,2,3];
array.map(function(x){
	return x+1;
}); // [2,3,4]

배열의 항목들을 반복하면서 조건을 수행한다.

객체

javaScript에서 배열은 객체이다. 하지만 배열의 프로토타입은 Array.Prototype 이다.

var array = [1,2,3];
var obj = {'one' : 1 , 'two' : 2};

console.log(typeof(array)); 	// object
console.log(typeof(obj));	// object

객체에 length라는 프로퍼티를 선언하면 어떻게될까? JavaScript에서는 이러한 객체를 유사배열객체(array-like-objects)라고 부른다. 유사배열객체는 배열처럼 length 프로퍼티를 갖고 있지만 배열이 아닌 객체이다.

var obj = {
    '0':'zero',
    '1':'two'
}
obj.length = 2;
 
var arr = Array.prototype.slice.apply(obj);
arr.push('three'); // 오류가 발생하지 않음.

0개의 댓글