🌟추가자료구조(Map,Set), 일급객체함수, es6문법
: 데이터의 구성, 검색, 사용을 효율적으로 처리 > 기존의 객체 또는 배열보다
: key / Value
key에 어떤 데이터타입(유형)도 다 들어올 수 있다.
Map은 키가 정렬된 순서로 저장되기 때문이다.
기능
: 검색, 삭제, 제거, 여부 확인
주요 메서드
new Map() : 맵을 만든다.
map.set(key, value) : key를 이용해 value를 저장
map.get(key) : key에 해당하는 값을 반환 key가 존재하지 않으면 undefined를 반환
map.has(key) : key가 존재하면 true, 존재하지 않으면 false를 반환
map.delete(key) : key에 해당하는 값을 삭제함
map.clear() : 맵 안의 모든 요소를 제거
map.size : 요소의 개수를 반환
예시
const myMap = new Map();
myMap.set("key", "value");
myMap.get("key");
Map에서는 keys(), values(), entries()메소드를 사용하여
키, 값 및 키-값쌍을 반복
=> [for ...of 반복문]
for of 반복문을 사용하기 위해서 객체가 Symbol.iterator속성을 가지고 있어햐 함(iterator : 반복문)
const myMap = new Map();
myMap.set("one", 1);
myMap.set("two", 2);
myMap.set("three", 3);
// console.log(myMap.keys());
for (const value of myMap.values()) {
console.log(value);
}
console.log(myMap.entries);
for (const entry of myMap.entries()) {
console.log(entry);
}
: 고유한 값을 저장하는 자료구조,
값만 저장한다. 키를 저장하지는 않는다. 값이 중복되지 않는 유일한 요소로만 구성된다. value만 넣음(집합)
const mySet = new Set();
mySet.add("value1");
mySet.add("value2");
mySet.add("value2");
console.log(mySet.size); // 2 중복된 값 x
console.log(mySet.has("value1")); // true
console.log(mySet.has("value2")); // true
console.log(mySet.has("value3")); // false
: 일급객체(First-class Object)란 다른 객체들과 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가르킴
function createAdder(num) {
return function (x) {
return x + num;
};
}
const addFive = function (x) {
return x + 5;
};
console.log(addFive(10));
// 일급객체로서의 함수(2)
const person = {
name: "john",
age: 31,
isMarried: true,
// sayHello: function () {
// console.log(`Hello my name is ${this.name}`);
// }, // this는 자기자신을 가르킴
sayHello: () => console.log(`Hello my name is ${this.name}`),
};
person.sayHello();
const myArr = [
function (a, b) {
return a + b;
}, // 0번째 요소
function (a, b) {
return a - b;
},
]; // 1번쨰 요소
// 더하기
console.log(myArr[0](1, 3));
// 빼기
console.log(myArr[1](10, 7));
ES6 문법
function add() {}
let add = function () {};
let add = (x) => {
return 1;
};
let add = (x) => 1;
de = not, structure = 구조 , 배열이나, 객체의 속성
// 1.
let [value, value2] = [1, "new"];
// 2.
let arr = ["value", "value2", "value3"];
let [a, b, c] = arr;
console.log(a);
console.log(b);
console.log(c);
let { name, age } = {
name: "mbc",
age: 30,
};
//새로운 이름으로 할당
let { name: newName, age: newAge } = user;
console.log(newName);
console.log(newAge);
const name = "nbc";
const age = "30";
// key - value
const obj = { name, age };
const obj1 = { name: name, age: age };
: 객체나 배열을 풀어준다.
// 배열 spreadOperator사용법
let arr = [1, 2, 3];
let newArr = [...arr];
console.log(arr);
console.log(newArr);
// 객체 spreadOperator사용법
let user = {
name: "nbc",
age: 30,
};
let user2 = { ...user };
=> ...args
:처음에는 넣어주지 않았지만 후에 값이 들어올 수 있음을 의미
function exampleFunc(a, b, c, ...args) {
console.log(a, b, c);
}
exampleFunc(1, 2, 3);
=> ` (베틱) : 베틱 안에 ${}시 변수명이나 자바스크립트 문법 사용가능 const testValue = "안녕하세요!" console.log(
Hello World ${3+3}`)
코드컨벤션(이름짓는방법)
한사람이 쓴 것처럼!
규칙에 의존!
- 파이썬(snake_case)
- PascalCase(컴포넌트, page파일)
- 상수 (다 대문자)
- 길더라도 약속되지 않은 줄임말 x
점점 알게되는 메서드가 많아지면서 각각의 특징들이 조금씩 헷갈리는 것 같다..!
무작정 외우지 말고 코테 문제들을 풀고 다른 사람들 풀이도 보면서 익히는 것이 더 빠를 것 같다
많이 풀어보고 많이 사용해보자!! 그것만큼 빨리 익히는 방법은 없다! 그리고 포기하지 말 것.✨