문자열 관련 method
기본적으로 ex) let str = 'AppleMango'
- length: 문자열의 길이를 반환(공백 포함), 함수X
- toUpperCase( ): 문자열 전체를 대문자로 변경
- str.toUpperCase // APPLEMANGO
- toLowerCase( ): 문자역 전체를 소문자로 변경
- str.toLowerCase // applemango
- indexOf("): 매개변수로 문자열을 받아서 몇번째 인덱스인지 숫자 반환
- indexOf('Apple') // 0: A가 0번째이기 때문
- indexOf('Mango') // 5: M이 5번째이기 때문
- indexOf('z') // -1: 없는 문자열 찾으면 -1로 반환
- slice(startldx[,endldx]): start부터 end-1까지 슬라이싱, 빼옴 매개변수로 음수값도 가능
- str.slice(5) // Mango: M부터 끝까지 출력(M이 5번째)
- str.slice(3, 6) // lem: 3은 포함하고 6은 포함하지 않게 출력 (l이 3, a가6)
- str.slice(-4) // ango: 음수도 가능
- replace(문자열1, 문자열2): 문자열1을 문자열2로 변경
- str.replace('p', 'o') // AopleMango
- replaceAll(문자열1, 문자열2): 문자열1을 전부 찾아서 문자열2로 변경
- str.replaceAll('p', 'o') // AooleMango
- repeat(n): 문자열에 대해 n번 반복
- str.repeat(2) // Applemango Applemango
- trim( ): 문자열의 양 끝 공백 없애기
- split( ): 매개변수로 들어온 문자열을 기준으로 str 쪼개서 배열로 저장
배열 관련 method
- push( ): 배열 끝에 추가
- pop( ): 배열 끝 요소 제거
- shift: 배열 앞에 제거
- unshift: 배열 앞에 추가
- includes: 해당 배열에 지정한 요소가 있는지 확인하는 method
- indexOf( ): 문자열에서의 indexOf와 마찬가지로 매개변수에 해당하는 배열의 인덱스를 받아온다. (단, 매개변수로 문자열만 넣을 수 있는 것은 아님)
- reverse( ): 배열 순서를 뒤집어서 반환시켜준다.
- join( ): join 안의 문자열 기준으로 문자열로 병합 시켜준다.
- join(''): join의 인자로 아무것도 전달이 되지 않으면 배열 안의 컴마까지 같이 문자열로 반환됨.
- 메소드 체이닝: 위에있는 각각의 메소드를 연결해서 사용하는 개념이다.
- (단, 메소드가 반환값을 가지고 있는 경우에만 사용이 가능하다.
- 'hello'.spilt("") = ['h', 'e', 'l', 'l', 'o']
- 'hello'.split("").reverse( ) = ['h', 'e', 'l', 'l', 'o'].reverse와 동일 = ['o', 'l', 'l', 'e', 'h']
for of문
배열에서만 사용 할 수 있는 반복문이다.
-
let numbers = [1,2,3,4,5,6];
let numbersLength = numbers.length;
for ( let number of numbers){
console.log(number);
}
-
for Each( 익명 함수)
- for Each (function(a,[b,c])) - b, c는 없어도 되는데 a는 무조건 있어야 한다.

filter, find, map
매개변수로 들어가는 함수에 리턴값이 필수다. 공통점으로는 익명함수가 들어간다는 점이다.
ex) const arr = [1, 2, 3, 4, 5];
- arr.filter( ): return이후의 조건에 만족하는 요소를 찾아서 새로운 "배열"로 반환시킨다.

- arr.find( ): return 이후의 조건에 만족하는 요소의 첫번째 값을 찾아서 "값"으로 반환시킨다.

- arr.map( ): 익명함수에 쓰여진 연산 결과를 새로운 "배열"로 반환 시킨다.

- 화살표 함수 = 중괄호 없이 사용이 가능하다.
arr_map = arr.map ( ( b ) => b + 3 ) // arr_map = [4, 5, 6, 7, 8]
내장 객체 - Date
내장 객체: javascript가 기본적으로 가지고 있는 객체들
Date 객체: 매 순간 바뀌는 시간과 날짜에 관한 정보를 얻기 위해 사용하는 객체
- new Date(2024, 10, 06, 18, 35, 50)
// Wed Nov 06 2024 18:35:50 GMT+0900 (한국 표준시)
( 0이 제일 처음으로 시작하기 때문에 0이 1월이므로 10은 11월이되고, 11이 12월이 된다. )
- Date 객체 - 함수
- Date.now( )
- date.getFullYear() // 해당 년도
- date.getMonth() // 해당 월
- date.getDate() // 해당 일
- date.getDay() // 해당 요일
- date.getHours() // 해당 시간, 시
- date.getMinutes() // 해당 시간, 분
- date.getSeconds() // 해당 시간, 초
- date.getMilliseconds() // 해당 시간, 밀리초
내장 객체 - Math
수학에서 자주 사용하는 상수와 함수들을 미리 구현해 놓은 내장 객체
// 웹 브라우저마다 다른 결과를 얻을 가능성이 있기에 정확한 결과를 얻어야 할 경우에는 Math메소드를 사용하지 않는 것이 좋다. //
- Math.E: 자연상수 E값
- Math.PT: 원주율; 파이 값
- Math.sqrt: 근호; 루트 값
- Math.min(50,10,1,2,3,4,-5) // 최소값
- Math.max(50,10,1,2,3,4,-5) // 최대값
- Math.random() // 0 보다 크거나 같고 1보다는 작은 소숫점의 수를 랜덤으로 뽑아줌
- Math.round(5.3) // 소수 > 정수로 반올림
- Math.floor(5.3) // 소수 > 정수로 버림
- Math.ceil(5.3) // 소수 > 정수로 올림
Math.random 응용 // 기본 베이스로 x는 0보다 크거나 같고 1보다 작다고 생각하면 됨. ( 0 <= x < 1 )
- 난수1: Math.floor ( Math.random ( ) *10 ) // 0 ~ 9까지의 소수가 아닌 난수
- 자연수 난수1: Math.floor ( Math.random ( ) *10 + 1 ) // 1 ~ 10까지의 자연수 난수
- 자연수 난수2: Math.floor ( Math.random ( ) *3 + 20 ) // 20 ~ 22까지의 자연수 난수