배열.push(요소) : 배열 뒷부분에 요소 추가
배열.splice(인덱스, 제거할 요소의 개수) : 배열의 특정 인덱스에 있는 요소 제거
배열.splice(인덱스, 0, 요소) : 배열의 특정 위치
에 요소 추가
배열.indexOf(요소) : 배열 내부에서 특정 값의 위치 찾기
indexOf() + splice() 활용 : 값으로 배열의 요소 제거
- 스택(stack) : 기본 자료형과 주소 등을 저장하는 메모리 공간(잘 쌓는 공간)
- 기본 자료형은 직접!
- 복합 자료형은 그 주소(address)!
- 힙(heap) : 복합 자료형을 저장하는 메모리 공간(대충 큰 것들을 던져서 쌓는 공간)
- 복합 자료형의 본체가 저장!
- 주소(address) : 저장된 자료의 위치
- 레퍼런스한다 : 스택의 주소가 힙의 자료를 가리키는 것
- 레퍼런스 변수 : 스택에 저장된 것 중에 주소가 저장된 변수
- 비파괴적 처리 : 처리 후에 원본 내용이 변경X
- 파괴적 처리 : 처리 후에 원본 내용이 변경O
- const의 제한 : const -> 스택에 있는 값 변경할 때 오류!!!
- 힙에 있는 레퍼런스된 복합 자료형을 조작하는 것에는 문제X
반복문
배열의 인덱스를 기반으로 반복할 때
for (const 인덱스 in 배열) { 문장 }
배열의 값을 기반으로 반복할 때
for (const 요소 of 배열) { 문장 }
횟수를 기반으로 반복할 때
for (let i = 0; i < 반복 횟수; i++) { 문장 }
조건을 기반으로 반복할 때
while (불 표현식) { 문장 }
조건문이나 반복문 벗어날 때
while (true) { } break
반복문 안의 반복 작업을 멈추고 반복문의 처음으로 돌아가 다음 반복 작업 진행
let output = 0 for(let i = 1; i <= 100; i++){ output += i } console.log(`1~100까지 숫자를 모두 더하면 ${output}입니다.`
* ** *** **** ****** ******* ... let output = ' ' for(let i = 1; i < 10; i++) { for(let j = 0; j < i; j++) { output += '*' } output += '\n' } console.log(output)
* *** ***** ******* ********* *********** ... let output = ' ' for(let i = 1; i < 15; i++) { for(let j = 15; j > i; j--) { output += ' ' } for(let k = 0; k < 2 * i - 1; k++){ output += '*' } output += '\n' } console.log(output)
* *** ***** ******* ********* *********** ********* ******* ***** *** * let output = '' const size = 5 for(let i = 1; i <= size; i++) { for(let j = size; j > i; j--) { output += ' ' } for(let k = 0; k < 2 * i - 1; k++) { output += '*' } output += '\n' } for(let i = size -1; i > 0; i--) { for(let j = size; j > i; j--) { output += ' ' } for(let k = 0; k < 2 * i - 1; k++) { output += '*' } output += '\n' } console.log(output)
함수
함수 호출 : 함수를 사용하는 것
매개 변수 : 함수를 호출할 때 괄호 내부에 넣는 여러 가지 자료
리턴값 : 함수를 호출해서 최종적으로 나오는 결과
function 함수(매개변수) { return 리턴값 }
const sum = function (limit) { let output = 0 for(let i = 1; i <= limit; i++){ output += i } return output } console.log(`합은 ${sum(10)}`)
function 함수(매개변수){ let output = 초기값 처리한다 return output }
윤년을 확인하는 함수
function isLeapYear(year){ return (year % 4 === 0) && (year % 100 !== 0) || (year % 400 === 0) } console.log(`2020년은 윤년일까? === ${isLeapYear(2020)}`) console.log(`2010년은 윤년일까? === ${isLeapYear(2020)}`)
A부터 B까지 더하는 함수
function sumAll(a, b){ let output = 0 for(let i = a; i <= b; i++){ output += i } return output } console.log(`1부터 100까지의 합: ${sumAll(1, 100)}`) console.log(`1부터 500까지의 합: ${sumAll(1, 500)}`)
최솟값 구하는 함수
function min(array){ let output = array[0] for(const item of array){ if(output > item){ output = item } } return output } const testArray = [52, 273, 32, 103, 275, 24, 57] console.log(`${testArray} 중에서`) console.log(`최솟값 = ${min(testArray)}`)