오늘 들은 강의는 ES6, 일급 객체, Map, Set, 데이터 타입 및 할당에 대하여 공부하였습니다.
대표적 문법 향상 및 변경의 버전이기에 항상 언급이 됩니다.
let,const
가장 대표적인 업데이트로는 변수의 선언의 키워드입니다.
재할당이 가능하고 재선언이 불가능한 키워드 let
재할당과 재선언이 불가능하고 초기값이 존재해야 선언이 가능한 키워드 const
arrow function() => {}
function의 역할을 같이하며 this의 선언이 함수를 선언할 때에 정해지는 arrow function
? :
if else문 대신 제가 자주 사용하려 하는 삼항 연산자
구조 분해 할당
이번 강의를 통해 처음 접하며 처음 사용해본 구조 분해 할당입니다.
여러 변수를 동시에 선언하거나 배열 안 요소를 하나하나 지정해가며 선언 할 필요 없이 선언 할 수 있습니다.
//변수 동시 선언
let [ex1, ex2] = [1, 'temp']; //ex1 = 1 , ex2 = 'temp'
let arr = ['ex1', 'ex2', 'ex3'];
let [a, b, c] = arr; // a = 'ex1, b = 'ex2', c = 'ex3'
객체의 속성도 분해 할 수 있습니다.
let people = {name: '철수', age: 17};
let {name, age} = people; // name = people.name;, age = people.age;
//새로운 이름으로 할당 및 추가
let {name: newName, age: newAge} = people; //name, age는 defined, newName = people.name;, newAge = people.age;
let {name, age, gender = 'male'} = people; // gender 키 에 'male'값 추가
스프레드 연산자와나머지 매개 변수
배열이나 객체를 전개하여 추가할 때에 사용합니다. [...배열] 혹은 {...객체}로 쓰입니다.
나머지 매개 변수는 스프레드 연산자를 활용해 함수의 지정 매개변수의 값을 초과한 값들의 입력을 받을 때에 ...agrs를 사용합니다.
함수를 객체처럼 여러가지 방식으로 다루는 문법입니다.
함수를 변수에 할당이 가능하고 어느 한 함수를 다른 함수에서 콜백하여 함수를 인자로 다른 함수에 전달이 가능하고,
어느 한 함수를 다른 함수에서 반환이 가능하며 함수는 객체와 배열의 요소 안에서 선언이 가능합니다.
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 – 요소의 개수를 반환합니다.
Set
맵과 다르게 키를 저장하지 않고 고유 값을 저장하는 자료 구조 입니다.
값이 중복되지 않고 유일한 요소로만 구성됩니다.
new Set() - 셋을 생성합니다.set.add() - 셋에 값을 추가합니다.for (const value of set.values()) {} - 셋은 value값 만 가지고 있기에 values() 메소드를 사용하여 반복합니다.set.size - 셋의 크기를 확인합니다.데이터 값의 타입은 기본형과 참조형으로 구분됩니다.
이 둘의 구분 기준은 값의 저장 방식과 불변성 여부입니다.
기본형 - 값이 담긴 주소값을 바로 복제하는 형식이며 불변성을 띕니다.
참조형 - 값이 담긴 주소값들을 가리키는 주소값을 복제하는 형식이며 불변성을 띄지 않습니다.
오늘 공부한 내용은 이정도 정리 정도면 다 이해가 되는것 같습니다.