오늘도 유튜브를 통해 문법을 공부해봤다.
일단 Arrow function를 공부해봤다.
이름이 없는 간결한 함수, 한줄인 경우의 함수 일 때 Arrow function을 사용할 수 있다. (배열이나 리스트에 자주 사용)
let add = function (a,b) {
return a+b;
}
let add = (a,b) => a+b;
위 두 코드는 같다. 만일 두줄 이상의 코드라면 { }와 return 값을 할당 해줘야 한다.
object는 비슷한 데이터의 자료를 모아두는 것, 서로 연관된 특징과 행동을 묶어두는 것, 자료구조는 이 object를 모아두는 것을 의미한다.
배열의 포인트는 인덱스! (0부터 시작하는 것)
1. const arr1 = new Array();
2. const arr2 = [1,2];
const fruits = ['사과','바나나'];
console.log(fruits);
console.log(fruits.length);
console.log(fruits[0]);
console.log(fruits.length -1); >>제일 마지막 인덱스 출력
a. for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i])
}
b. for (let fruit of fruits) {
console.log(fruit);
}
c. fruits.forEach((fruit) => console.log(fruit));
>> forEach는 value, index, array를 반복시킬 수 있음
push: 끝에 추가하기
fruits.push('사과','딸기'); console.log(fruits);
pop: 끝에서 제거하기
fruits.pop(); console.log(fruits);
unshift: 앞에서 넣기
fruits.unshift('딸기','레몬'); console.log(fruits);
shift: 앞에서 빼기
fruits.shift(); console.log(fruits);
다만, unshift와 shift는 pop, push보다 느리다.
당연히 배열의 길이가 길면 길수록 더 느려진다.
splice : 지정된 포지션 복사
fruits.splice(1,1); console.log(fruits); fruits.splice(1,1, '사과','수박') console.log(fruits); >1번부터 1개만 지우고 사과와 수박을 추가해줘
시작하는 인덱스 번호와 몇개를 지울건지 작성하면 됨 다만 몇개를 지울 건지 말하지 않는 다면 지정한 인덱스부터 모든 데이터를 삭제함
두가지 배열 묶기 (concat)
const fruits2 = ['모과','코코넛'] const newFruits= fruits.concat(fruits2); console.log(newFruits)
console.log(fruits.indexOf('사과'));
>> 몇번째에 있는지 출력
(중복된다면 첫번째 출력) (배열안에 해당하는 값이 없다면 -1로 출력됨)
console.log(fruits.lastIndexOf('사과'));
>> 마지막에 있는 인덱스 출력
console.log(fruits.includes('수박'));
>> true / false로 출력
// Q1. 배열을 string으로 만드는 join. (구분자)를 넣지 않으면 자동으로 ',' 생성
{
const fruits = ['apple', 'banana', 'orange'];
const result = fruits.join();
console.log(result);
}
// Q2. string을 배열로 만드는 split (구분자를 전달하지 않으면 문자열 전체가 배열1개로 되어버림. 배열의 사이즈도 만들 수 있음)
{
const fruits = '🍎, 🥝, 🍌, 🍒';
const result = fruits.split(',');
console.log(result);
}
// Q3. 배열 이 모양처럼 만들기: [5, 4, 3, 2, 1]
>>reverse는 배열과 return 전부 바꿔버림
{
const array = [1, 2, 3, 4, 5];
const result = array.reverse();
console.log(result);
}
// Q4. 첫번째와 두번째 요소 없이 새로운 배열만드는 slice (2번재부터 5번째 전까지 _5번째는 배제됨)
>> splice와 차이점은 splice는 배열 자체를 수정함
{
const array = [1, 2, 3, 4, 5];
const result = array.slice(2, 5);
console.log(result);
}
나는 특히 자바스크립트 8-10편이 특히나 더 배울점이 많은 강의였다. 백준 문제풀이를 하면서 자바스크립트 기본 문법이 부족하다는 것을 느낄 때가 많았는데 그 때 풀리지 않았던 문법들을 이번 강의를 통해서 해결할 수 있었다.