1. 배열
객체형에 속한다. 키가 숫자.
두 가지 문법이 있다.
let arr = []
let arr = new Array() // 실수가 생길 수 있으니 잘 이해하고 사용
꺼낼 때는 arr[순서]
0부터 시작한다.
let fruits = ["사과", "오렌지", "자두"]
alert( fruits[0] ) //사과
alert( fruits.length ) // 3
alert( fruits ) //사과, 오렌지, 자두
- length : 배열에 담긴 요소의 수
// length 값 감소를 이용해 배열 자르기
// 증가시켜도 배열에는 아무런 변화가 없다
let arr = [1,2,3,4,5]
arr.length = 2
alert( arr ) // 1,2
arr.length = 5 //본래의 길이로 되돌리기
alert( arr[3] ) //삭제된 기존의 요소는 복구되지 않는다
arr.length = 0 //배열 비우기
- 배열 요소의 자료형에는 제약이 없다.
- 배열의 요소는 , 로 구분한다.
큐(Queue)
push 맨 끝에 요소를 추가
shift 제일 앞 요소를 꺼내어 제거 > 남아 있는 요소들을 앞으로 밀기 (주소가 한 칸씩 앞으로 당겨 바뀜)
스택(stack)
push 요소를 스택 끝에 집어 넣는다
pop 스택 끝 요소를 추출
unshift 요소를 배열 처음에 더해 준다
push pop 빠름
shift unshift 느림
데큐 (deque, Double Ended Queue)
: 처음이나 끝에 요소를 더하거나 뺴주는 연산을 제공하는 자료구조
- 다차원 배열 (multidimensional array)
배열이 배열의 요소가 되는 것
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
alert(matrix[1][1]) // 5
2. 배열과 메서드
splice
배열에서 요소를 하나만 지우기
arr.splice(index, deletecount, 추가요소1, 추가요소2 ...)
deletecount를 0으로 설정하면
요소를 제거하지 않으면서 새로운 요소 추가 가능
- 음수 인덱스 사용 가능
인덱스 -1 : 배열 끝에서 부터 첫 번째 요소
slice
인덱스 start 부터 end 까지의 요소를 복사한 새로운 배열
start end 음수 가능 (음수일 경우: 배열 끝에서 부터)
end를 제외하고 그 전 요소까지 출력
arr.slice(start,end)
conacat
모든 요소 합치기
arr.concat(합치고 싶은 거 전부 다)
forEach
반복 작업
배열 탐색하기
arr.indexOf(item, from) : 인덱스 from 부터 item 이 있는지 검색,
해당 요소 발견하면 해당 요소의 인덱스를 반환, 발견하지 못하면 -1 을 반환
arr.lastIndexOf(item, from) : 위와 동일하나 검색을 끝에서부터 한다.
arr.includes(item, from) : 인덱스 from 부터 item 이 있는지 검색, 해당 요소 발견하면 true 반환
arr.find( )
true 가 반환되면 반복이 멈추고 해당 요소를 반환,
조건에 해당하는 요소가 없으면 undefined를 반환
arr.filter( )
조건에 맞는 요소 전체를 담은 배열을 반환한다.
배열 변형하기
arr.map
함수를 호출, 함수 호출 결과를 새로운 배열로 반환.
arr.sort
배열의 요소를 정렬, 배열 자체가 변경.
요소는 문자열로 취급되어 재정렬된다 (사전편집순)
=>
화살표 함수
arr.sort(function(a,b) {return a - b})
arr.sort((a, b) => a- b)
str.localeCompare
모든 국가의 언어 문자열을 비교
arr.reverse
arr의 요소를 역순으로 정렬
str.split(구분문자)
구분문자를 기분으로 문자열을 쪼갠다.
arr.join(접착문자)
배열 요소 모두를 접착문자로 구분해 하나의 긴 문자열을 만든다.
Arrary.isArray(value)
value 가 배열이라면 true 아니라면 false 를 괄호 사이에 반환한다
3. 반복문
while
while (condition) {
// 코드
// '반복문 본문(body)'
}
condition 이 truthy 면 반복문 본문의 코드가 실행됩니다.
do...while 문 : 반복이 끝난 후에 조건을 확인
for
for (begin; condition; step) {
// 반복문 본문
}
//begin 과 step 은 필요 없는 경우 생략 가능
for (let i = 0; i < 3; i++) {
alert(i)
}
// 0,1, 2 출력
// 모든 구성 요소를 생략한 무한 반복문
for (;;) {
// 끊임없이 본문이 실행됩니다.
}
break
반목문 빠져 나오기 (종료)
continue
현재 반복을 종료시키고 다음 반복으로 넘어갈 때
lable (레이블)
반복문 앞에 콜론과 함께 쓰이는 식별자
labelName: for (...) {
...
}
break <lableName> 문을 사용하면 레이블에 해당하는 반복문을 빠져나올 수 있다.
소감
알듯 말듯 하면서도 자세히 다루려면 어려운 것 같다.
시간 여유가 되는 날은 적겠지만 그래도 시간이 된다면 책을 읽듯 한 자도 놓치지 않고 읽어만 보는 것도 좋을 것 같다.
전부 이해할 수 있는 날이 오길 바란다.
스파르타 코딩클럽 내일배움캠프 사전캠프 자료
javascript handbook 에서 발췌
'학습 내용 정리 > javascript' 카테고리의 다른 글
javascript 5. 객체 (1) | 2023.05.03 |
---|---|
javascript 4. 함수 (3) | 2023.05.03 |
javascript 2. 조건문 if switch (1) | 2023.05.02 |
javascript 1. 자료와 변수 (1) | 2023.05.02 |
javascript 0. 환경 설정 및 코드 구조 (1) | 2023.05.02 |