다음 주 월요일부터 유데이 자료구조, 알고리즘 스터디를 들어가기 전에 자바스크립트에서 꼭 알아야할 컨셉들에 대해서 미리 알아보고 수-일동안 이 컨셉들에 대해서 살펴보려고 한다.
어떤 컨셉이 있는지 보겠다. 5일 동안 하단의 컨셉들은 모두 살피고 간다.
기본 문법
배열
객체
문자열 처리
함수
자료구조
알고리즘
비동기 처리
기타
Set
과 Map
등의 내장 객체 사용reduce
, filter
, find
, findIndex
최적화 및 디버깅
let age = 25; // 변수 - 변할 수 있는 값
const pi = 3.141 // 상수 - 변할 수 없는 값
let name = 'John' // String
let isActive = true; // Boolean
if( 조건 ) console.log('dd');
switch(name){
case 'John' :
console.log('john입니다');
break;
case 'Suwon' :
console.log('suwon입니다');
break;
default :
console.log('default');
}
for(let i = 0 ; i<5; i++){
console.log(i);
}
let j = 0;
while(j<5){
console.log(j);
j++
}
let k = 0;
do{
consolelog(k);
k++;
} while(k<5);
this
바인딩에 관해서 차이를 가진다.const add = (a,b) => a+b; // 인수 a,b , return a+b
this binding
: 화살표 함수는 자체 this binding
을 가지고 있지 않다. 화살표 함수 내부의 this
는 그 함수가 정의될 때의 렉시컬 환경(주변문맥)의 this
를 상속받는다.
function Timer(){
this.seconds = 0;
setInterval( () => {
this.seconds++; // 여기서의 this는 Timer 객체를 참조한다.
console.log(this.seconds);
}, 1000);
}
let timer = new Timer();
배열 리터럴은 대괄호[]를 사용하여 정의된다.
let fruits = ['apple', 'banana', 'cherry'];
객체 리터럴은 중괄호{}를 사용하여 정의된다. 속성과 값의 쌍으로 구성된다.
let person = {
name:'suwon',
age:25
};
강렬한 파이썬의 내장메서드만큼 자바스크립트도 그 못지 않은 메서드가 있다.
1. push
배열의 긑에 하나 이상의 요소
를 추가하고, 변경된 배열의 길이
를 반환한다.
fruits.push("mango"); // fruits: ["apple", "banana", "cherry", "mango"]
마지막 요소
를 제거하고, 그 요소
를 반환한다.let lastFruit = fruits.pop(); // lastFruit: "mango", fruits: ["apple", "banana", "cherry"]
첫번째 요소
를 제거하고 그 요소
를 반환한다.let firstFruit = fruits.shift(); // firstFruit: "apple", fruits: ["banana", "cherry"]
하나 이상의 요소
를 추가하고, 변경된 배열의 길이
를 반환한다.fruits.unshift("grape"); // fruits: ["grape", "banana", "cherry"]
제거
하거나 대체
하거나 요소를 추가
하여 배열의 내용을 변경
한다.fruits.splice(1, 1, "kiwi"); // fruits: ["grape", "kiwi", "cherry"]
부분 배열
을 반환한다.let slicedFruits = fruits.slice(1, 3); // slicedFruits: ["kiwi", "cherry"]
모든 요소에 함수를 호출
하고, 결과로 구성된 새로운 배열을 반환
한다.let fruitLengths = fruits.map(fruit => fruit.length); // fruitLengths: [5, 4, 6]
새로운 배열
을 반환한다.let longFruits = fruits.filter(fruit => fruit.length > 5); // longFruits: ["cherry"]
하나의 결과값
을 반환한다.let totalLength = fruits.reduce((acc, fruit) => acc + fruit.length, 0); // totalLength: 15
배열을 반환
한다.fruits.sort(); // fruits: ["cherry", "grape", "kiwi"]
배열을 순회하면서 각 요소에 접근할 수 있다.
for (let i = 0; i < fruits.length; i++) {
console.log(fruits[i]);
}
// 혹은 forEach를 사용
fruits.forEach(fruit => console.log(fruit));
배열의 요소로 또 다른 배열을 포함하면, 이것을 다차원 배열이라고 한다.
let matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
];
console.log(matrix[1][2]); // 출력: 6