JS 배열도 오브젝트이다.

Posted by negabaro kim on Tuesday, March 26, 2019 Tags: js   1 minute read

배열

이하와 같은 형태로 사용한다.

var array1 = new Array(3);
var array2 = new Array("foo", "bar", "baz");
var array3 = ["abc", "def", "xyz"];

array2[0] = "123";
alert(array3[2]);

배열은 오브젝트와 달리 이하 특별한 프로퍼티를 가지고 있음 바꿔말하면 그 외의 것들은 오브젝트와 같다

  1. length: 배열 인덱스+1을 리턴함 해당값을 바꾸면 배열의 사이즈도 바뀌게됨
  2. pop() : 배열의 끝을 삭제하고 삭제한 요소를 리턴함
  3. push(value, …) : 배열끝에 해당값을 추가
  4. shift() : 배열의 첫행의 값을 삭제하고 삭제한 요소를 리턴
  5. unshift(value, …) : 배열의 첫행에 값을 추가
  6. etc(그외에도 있지만 생략)

자바스크립트의 객체는 곧 배열인 증거

1. 객체안에 메소드는 없다.

객체의 메소드는 객체 안에 존재하지 않는다.

메소드를 소유한 parent 객체는 객체에 포함된 메소드들의 참조값만을 가지고 있다.

메소드들 자체도 각각 개별 객체로서 존재한다.

2. Object Notation

JSON의 key, value 방식의 객체 리터럴 구조는 배열 구조와 동일 하다.

JSON의 표현방식은 [] 라는 Array 표현의 다른 방식일 뿐이다.

실제로 객체의 프로퍼티 생성이나 참조에서 . 연산자가 아닌 []를 사용 할수도 있다.

var foo = { name: "foo" };
console.log(foo["name"]); //foo
console.log(foo.name); //foo

정리

객체는 자기 자신을 이루는 요소들을 저장한 배열들의 집합체이고 이들은 chain이라는 연결 구조를 가지고 있다.

https://qiita.com/yoshi389111/items/245df2d642e49d2acf3a http://insanehong.kr/post/javascript-object/