JavaScript Arrays basic
Table of contents
Arrays Basic
What is an Array?
한번에 여러가지의 value를 담을 수 있는 특별한 변수, 목적도 같다
▸ 프로퍼티(name)로 숫자(인덱스)를 사용하는 특별한 유형의 객체이다
Avoid new Array()
[]
사용하기
var points = new Array(); // Bad
var points = []; // Good
▸ new
키워드는 Array 함수의 매개변수가 2개 이상 이여야지 제대로 작동하고, 코드를 복잡하게 함
var points = new Array(40);
points[0] -> undefined
//because it’s not an Array, just one single element(error)
Associative Arrays
연관배열
이름을 가지고 있는 배열을 많은 프로그래밍 언어에서 사용하며 그렇게 명명된 인덱스 배열을 연관배열 이라고 함
→ 자바스크립트는 연관배열을 지원하지 않기 때문에 어떤 인덱스를 사용하고 싶은지에 따라서 명명된 인덱스는 객체, 숫자 인덱스는 배열을 사용하면 됨
Warning
명명 된 인덱스를 사용하는 경우 JavaScript는 배열을 표준 객체로 재정의, 말 그대로 객체로 정의함
그 후 배열 메소드 및 속성은 잘못된 결과를 생성하니까 사용금지!
The Difference Between Arrays and Objects
배열은 숫자 인덱스를 사용, 객체는 명명된 인덱스를 사용
▸ 배열은 번호가 매겨진 인덱스를 가진 특별한 종류의 객체
How to Recognize an Array
typeof
오퍼레이터가 object 라고 리턴하기 때문에 문제가 생김
▸ 해결 방법: Array.isArray(), own function, instanceof operator
Array.isArray()
not supported in older browsers
Array.isArray(fruits); // returns true
your own isArray() funtion
function isArray(x) { return x.constructor.toString().indexOf("Array") > -1; } //returns true if the object prototype contains the word "Array"
instanceof operator
var fruits = ["Banana", "Orange", "Apple", "Mango"]; fruits instanceof Array; // returns true //returns true if an object is created by a given constructor
Array Elements Can Be Objects
배열은 객체이고, 변수는 객체일 수 있어서 동일한 배열에 다른 유형의 변수를 가질 수 있음
예제
myArray[0] = Date.now; //object in array
myArray[1] = myFunction; //function in array
myArray[2] = myCars; //array in array