카테고리 없음

js 배열

tp134679 2024. 11. 22. 00:16

<목차> 

1. 배열이란 

2. 배열의 원시타입과 참조 타입. 

2.1 스프레드 연산자.

 

 

 

1. 배열이란 

그전 변수에는 하나의 값만을 담아서 사용하였지만 여러개의 객체를 불러야 할시에 하나하나 변수를 선언해야하는 번거로움이 있었습니다. 

 

a b c d 를 선언하기 위해서 각각 변수를 선언해서 log를 해야 나타낼 수 있었기에 이를 그룹으로 묶어서  표한히기 위해 배열을 사용합니다. 배열 사용은 []  <= 를 사용하여 변수값을 묶어서 표현합니다. 

배열의 인덱스와 할당된 변수값을 알 수 있다 0 1 2 3

배열은 데이터를 순서대로 저장하기에 원하는 값만 출력해서 보고 싶으면  log 값에 원하는 변수의 번호를  []에 넣어서 표현합니다.

단 콘솔 로그에 [2] 의 값을 넣었지만 a3이 나왔다 그 이유는 배열은 그안의 변수를 순서대로 저장할때 첫번쨰 값을 1부터 저장하는게 아니라 0부터 시작하기에 a1~a4 의 4가지 변수가 담겨있지만 배열의 저장 순서는 0부터 시작함으로 0 1 2 3 까지 4가지가 존재하게 된다. 이를 인덱스라고 하며

 

인덱스 : 배열에서 각 속성에 접근하기 위해서 사용하는 위치(번호)를 나타내고 항상 0부터 시작합니다.

 

인덱스 값 끼리 더하기도 가능하며

인덱스 0="a1" 2= "a3"

인덱스 안의 배열 의 총길이를 구하는 length 라는 명령어도 있습니다. 

사용법은

선언한 변수명 뒤에 .length 를 붙여서 사용합니다. 

a1, a2 ,a3, a4 이므로 4개

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 와는 별개의 영역이 됨)