배열(Arrays) :
이름과 인덱스로 참조되는 정렬된 값이 집합으로 정의되는것
순서가 있는 값들의 집합
배열을 구성하는 각각의 값 -> 요소(element)
인덱스 : 배열에서 위치를 가르키는 숫자.
배열의 위치는 0번부터 시작 /배열의 첫번째 인덱스는 0)
why? : 메모리 주소가 0부터 시작해서
//ex)
var idx = [1,2,"3"];
//만약 배열이 없다면
var idx1 = 1
var idx2 = 2
var idx3 = "3"
그래서 배열을 왜 사용하냐? 라고 물어보면
위의 예시와같이 숫자 3개에대해 변수를 선언해준다고 했을때
배열이 없다면, 변수 하나하나 노가다를 뛰며 선언을 해주어야 한다.
어느언어나 배열은 있겠지만, JS 배열만의 특징은 무엇인지 알아보자
배열 요소의 타입이 고정되어있지 않다.
(같은 배열에 있는 요소 타입이 상이할 수 있다.)
배열 요소의 인덱스가 연속적이지 않아도 된다.
(특정 배열요소는 비어있을수 있음)
자바스크립트에서 배열은 Arrays라는 객체로 다루어진다
JS에서 배열을 만드는 방법은 총 세가지가 있다.
//1. 배열 리터럴 var arr = [요소1, 요소2.....] //2. Arrays 객체 var arr = Arrays(요소1, 요소2) //3. new var arr = new Array(요소1, 요소2)
위방법을 중 상황에 맞춰 배열을 생성하면 될 듯 하다.
근데 아직 나는 어떤경우에 뭘 사용해야 할지 개념은 잡혀있지 않다.
//배열의길이가 5인 배열을 생성하였다.
var arr = [11, 20, "하위바위", 70, 90]
//첫번째 자리 11을 꺼내오고 싶은경우
console.log(arr[0]);
//세번째 자리 "하위바위"를 꺼내오고 싶은경우
console.log(arr[2]);
//세번째 자리 "하위바위"에서 "바"라는 글자를 출력하고 싶은경우
console.log("하위바위"[2]);
위에도 말했듯이 배열 첫번째 요소의 인덱스는 1번이 아니라
0번인 것을 꼭 기억하자
//배열의 길이를 출력하는 속성 length
var arr = [11, 20, "하위바위", 70, 90];
console.log(arr.length); //결과값 : 5;
//배열에 요소를 추가하는 속성
//1. push()
arr.push("test");
//2. length 를 이용하는 방법
arr[arr.length] ="하이하이"
//3. 특정 인덱스를 사용
arr[2] = "2번자리에 넣을거임"
// 만약 기존의 배열길이 보다 큰 인덱스를 쓴다면
// 어떻게 될까?
// ex 배열의 요소가 아래와 같을때
var arr = [11, 20, "하위바위", 70, 90];
// 30번째 자리에 "안녕" 이라는 문자를 넣는다면?
arr[30]= "안녕" //에러발생 안함
// 위의 코드의 결과는 999번째 인덱스에 문자열을 집어넣음
// -> 5~29 까지는 배열의 요소가 없는 상황
// 이처럼 배열의 요소가 없는 부분을 arrayHole이라 부름
// JS는 Arrayhole을 어떻게 취급? -> undefined로 취급
배열은 이정도로 수업을 들었다.
Java 할때 배열을 어느정도 공부해서 무슨 개념인지는 잡혔는데
배열도 다른 언어끼리의 차이점이 보여서
어? Java에서는 안됐는데 왜 JS에서는 되는거지? 라는 의문점이
많이 생겼던 하루였다.
이제 빨리 매우매우 중요한 function에 대해 공부하러 가보려 한다.😁