다음 주 월요일부터 유데이 자료구조, 알고리즘 스터디를 들어가기 전에 자바스크립트에서 꼭 알아야할 컨셉들에 대해서 미리 알아보고 수-일동안 이 컨셉들에 대해서 살펴보려고 한다.
어떤 컨셉이 있는지 보겠다. 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