Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

어리바리 신입 개발자의 얼렁뚱땅 개발 기록 ✨

23.03.23 / 배열 (자바와 비교해서..) 본문

Front - end/JS

23.03.23 / 배열 (자바와 비교해서..)

낫쏘링 2023. 3. 23. 14:26
728x90
  • 하나의 저장소에 여러 데이터 타입을 저장 할 수 있는 방법 (객체)
  • 하나의 저장소에 공간을 쪼개서 저장할 수 있다.
  • 그 공간에는 주소가 생성되는데 그것을 index라고 한다.
  • index의 처음 시작 주소는 0번부터 시작된다.
  • 배열 객체에 담긴 대상을 요소(원소) 라고 한다.
  • index를 활용하여 배열에 접근이 가능하며, 접근이 되었다면 값을 저장하거나 값을 가져올 수 있다.
  • 모든 자료형과 객체를 담을 수 있다.
  • var, let, const 뭘 사용하든 상관 없지만.....
  • 배열 안에 담긴 값이 꾸준히 저장/유지되는 것이 중요한 경우에는 const (재선언,재할당 불가능) 사용해서 선언

 

[ 자바의 배열과 자바스크립트의 배열 ]

자바는 배열을 선언할 때 데이터 타입을 정해서 정해진 데이터 타입만 담을 수 있지만
자바스크립트는 배열 선언시 데이터 타입을 지정하지 않기 때문에 타입 상관 없이 담을 수 있다.
그럼 데이터 타입을 굳이 쓰지 않아도 되나? - 오류를 적게 하기 위해서 적어주는 것이 좋다.

 

[ 배열 선언 ]

♥ 자바의 배열 선언 ♥

//배열 선언1
int[] intArray;
double[] doubleArray;
String[] strArray;

//배열 선언2
int intArray[];
double doubleArray[];
String strArray[];

//값을 배열에 저장(배열 생성)하는 동시에 선언(초기화)하는 방법
String[] intArray = { “홍길동”, “이순신”, “고길동” };

//배열 생성1 (선언과 생성 동시에) - 빈 인덱스 만들어 주는 것
배열명[] = new 데이터형[배열의크기];
intArray[] = new String[3];

//배열 생성2 (선언과 생성 따로) - 빈 인덱스 만들어 주는 것
int[] intArray;
intArray = new String[3];

-----------------------------------------------


♥ 자바 스크립트의 배열 선언 ♥

//기본 배열 선언 방법
var arr = []; 

//자바에서는 생성자 메소드 호출이지만 
//js에서는 배열 선언 방법 중 하나
//굳이 이렇게 쓰지 않고 기본 배열 방법을 사용한다.
var arr = new Array();  

//값을 배열에 저장하는 동시에 선언하는 방법
var arr = ['홍길동', '이순신', '고길동'];

//데이터 타입 통일하지 않아도 가능
const arr6 = ["가",1,'나',true,null,undefined, [1,2,3]];
var arr = new Array();를 왜 굳이 사용하지 말라는 건지?
 Array는 내장 객체를 불러온 것 (자바의 생성자 메소드와 혼동x)
가변적이기 때문에 길이에 한정이 없음
new Array가 길이에 한정이 없는게 문제라면 길이를 한정 한다면?
const arr3 = new Array(3);    
// int[] arr3 = new int[3]; (자바에서 길이를 제한한 배열이랑 같은 예)​

하지만 자바 스크립트에서 배열은 공간을 한정할 이유가 없음
그니까 걍 쓰지 말라는 이야기~   

 

[ 배열에 값 추가/수정 / 초기화 ]

♥ 자바 ♥

//배열에 값 추가하기 (인덱스를 정해서 추가/수정/초기화)
intArray[1] = “이순신장군”;
intArray[3] = “세종대왕”;

//리스트 컬렉션 (인터페이스)를 사용해서 추가하는 방법
//List<String> intArray = new ArrayList<String>();
intArray.add('한국');


-----------------------------------------------------


♥ 자바 스크립트 ♥

//배열에 값 추가하기 (인덱스를 정해서 추가/수정/초기화)
arr[0] = '바나나';
arr[1] = '딸기';
arr[2] = '사과';

//현재 arr 배열에는 0~2 인덱스에 값이 있음 
//그런데 값 추가를 3인덱스를 뛰어넘고 4인덱스에 함 - 3인덱스 empty 상태 됨
arr[5] = '포도'; //바나나, 딸기, 사과 , empty, 포도

//배열에 값 추가하기 (인덱스의 제일 끝에 추가)
arrP.push('바나나');
arrP.push('딸기');
arrP.push('사과');

 

[ 배열에 접근하기 ]

♥ 자바와 자바스크립트 똑같음 ♥

1. 배열 변수명 // 배열 전체 접근
2. 배열 변수명[인덱스] // 특정 인덱스에 접근

const arr['바나나','딸기','사과'];

console.log(arr); // 바나나,딸기,사과 출력
console.log(arr[2]); // 사과 출력

 

[ 배열 객체의 속성과 메소드 ]

  • length : 배열의 크기를 알수 있는 속성
  • push() : 배열에 값을 삽입하는 메서드
  • pop() : 배열의 마지막 요소 제거 후 제거된 요소 반환
  • splice(삭제를 시작할 인덱스, 삭제할 요소수) : 특정배열 요소 삭제
  • Array.isArray(배열 변수명) : 배열 여부 확인  
const arr = [1,2];
console.log(arr.length, 'arr의 배열의 크기');
//배열의 크기를 출력하는 방법(인덱스 갯수)
//인덱스의 주소와 배열의 크기를 헷갈리지 않기! 

let result1 = arr.push(3); // 끝 인덱스의 다음 익덱스에 값 생성 - 리턴 값은 추가 후 배열의 길이
console.log(result1,arr);
ar8.push(4,5);   			// 두 개 동시에 대입 가능
console.log(result1,arr);

let result2 = arr.pop(); // 끝 인덱스의 값 제거 - 리턴 값은 삭제된 배열
console.log(result2,arr);

let result3 = arr.splice(1,2); // 1인덱스부터 2개의 배열을 삭제하고 삭제한 값을 배열로 생성
console.log(result3,arr);      // 결과 arr = [1,2,3,4] -> [1,4] / result3 = [2,3]

//배열일 때 반복문을 돌려라 같은 조건 확인에 사용한다.
console.log(Array.isArray(result1), 'result1 배열여부확인');
console.log(Array.isArray(result3), 'result3 배열여부확인');

 

자바의 메소드와 자바스크립트의 함수

객체 안에 담겨 있는 함수를 메소드라고 한다. - 자바에서는 함수 존재하지 않는다. (모든 클래스 내에 함수가 존재하기 때문)

 

 

728x90