<목차>
1. 배열이란
2. 배열의 원시타입과 참조 타입.
2.1 스프레드 연산자.
1. 배열이란
그전 변수에는 하나의 값만을 담아서 사용하였지만 여러개의 객체를 불러야 할시에 하나하나 변수를 선언해야하는 번거로움이 있었습니다.
a b c d 를 선언하기 위해서 각각 변수를 선언해서 log를 해야 나타낼 수 있었기에 이를 그룹으로 묶어서 표한히기 위해 배열을 사용합니다. 배열 사용은 [] <= 를 사용하여 변수값을 묶어서 표현합니다.
배열은 데이터를 순서대로 저장하기에 원하는 값만 출력해서 보고 싶으면 log 값에 원하는 변수의 번호를 []에 넣어서 표현합니다.
단 콘솔 로그에 [2] 의 값을 넣었지만 a3이 나왔다 그 이유는 배열은 그안의 변수를 순서대로 저장할때 첫번쨰 값을 1부터 저장하는게 아니라 0부터 시작하기에 a1~a4 의 4가지 변수가 담겨있지만 배열의 저장 순서는 0부터 시작함으로 0 1 2 3 까지 4가지가 존재하게 된다. 이를 인덱스라고 하며
인덱스 : 배열에서 각 속성에 접근하기 위해서 사용하는 위치(번호)를 나타내고 항상 0부터 시작합니다.
인덱스 값 끼리 더하기도 가능하며
인덱스 안의 배열 의 총길이를 구하는 length 라는 명령어도 있습니다.
사용법은
선언한 변수명 뒤에 .length 를 붙여서 사용합니다.
2. 배열의 원시타입과 참조타입
js 에서의 데이터 타입은 원시타입과 참조 타입으로 나뉘는데 데이터를 저장하는 방식이 각각 다르다
원시타입일때의 데이터 저장방식의 경우
원시타입
변수들을 데이터 복사가 일어날 때 메모리 공간을 새로 확보하여 독립적인 값을 저장.
즉 let a =1 이라고 할때
a 와 1이라는 영역 2개 독립적인 방을 만들어서 저장을 한다.
해당 코딩 작성시 a = 1 이있고 b=a log 시 b 는 a 자리에 있는 1을 호출하고 2재선언시 1의자리에 2가 대신 차지하고 js는 필요없어진 1을 내보내서 삭제합니다. 그후 2가 들어간 자리에 b 가 다시 호출 하여 2값이 나오게 됩니다.
참조타입
참조타입은 배열이 있는 타입으로서
해당 함수 선언시
처럼 나오는게 아니라
[12,15] 값이 arr1 뒤에 들어가는게 아니라 따로 영역을 생성하여 12.15 의 값을 넣어놓고 그 값을 상징하는 임의로 준x123 코드 좌표 값 을 보내는 크라우드,와 외장하드 같은 타입을 가집니다.
2-1 스프레드 연산자.
스프레드 연산자는 얕은 복사를 한다 라는 개념으로 ...을 변수앞에 붙여서 사용합니다.
arr2 는 앞서 말한 arr1 의 코드좌표를 공유하여 같은 방을 쓰는듯한 듯이 재선언을 하는 개념이지만
스프레드 연산자는
새로운 arr1 과 똑같은 값을 가진 새로운 영역 을 생성하고 임의로 준 y123의 좌표값을 가지는 새로운 영역을 생성하는 개념입니다 즉 . arr1 의 변수값을 복사하지만 복사한 값을 독자적으로 가지는 영역을 새로히 생성 하는것을 알 수 있습니다. 이러한 속성때문에 스프레드 연산자는 얕은 복사라고 합니다.
때문에 arr2 의 [0] 자리에 20을 재할당 하고 arr1 을 log 해도 값은 12,15가 나오게 됩니다 (다른 영역을 생성해서 arr2 와는 별개의 영역이 됨)