Javascript/Javascript

Javascript에서 Array는 Array가 아니다?

bugtype 2019. 3. 31. 13:24

(티스토리는 PC에서 문단이 안보이는 현상이 있습니다.)

우리가 흔히 C++, java 등에 있는 array하고는 다릅니다.
c++, java 등에서 사용되는 array는 연속된 메모리주소에 있는 값을 말합니다.

int[] a = new int[]{0,1,2,3,4,5};
(메모리주소) (값) (값) (값) (값) ...
00400400 00 01 02 03 04 05 ...

하지만, javascript에서 array는 객체입니다.
연속된 메모리를 가지는 것은 아닙니다.
그리고 객체는 Property를 가질 수 있습니다.

var john = []; // john이라는 배열이라는 **객체** 생성.
john[“name”] = “john” // 객체는 속성을 가질 수 있음.

그러므로 john[“name”] = “john” 이 작동 되는 것입니다.

알아두셔야 할 것은…
javascript에서 Array

  1. Map이다. ( 즉 연속된 메모리 공간에 저장하는 것이 아닙니다. )
  • a[0]=1 a[99]=1 해도 정상작동.
  1. 객체다.
  • 객체 이기 때문에 속성(Property)을 가질 수 있다.
  • 더 정확히 말하면 javascript에서 모든 type은 prototype을 가집니다.
  1. 요소(element)의 수를 세는 것이 아니라 제일 큰 index를 출력 합니다.
  • a[0]=1 a[99]=1 a.length하면 100 출력

https://jsdev.kr/t/array-length/4482/3