내일배움캠프 Node.js 본캠프 7일차

김선우·2024년 8월 13일
post-thumbnail

배운 것

es6 - 2015년도 발표된 JS버전. - 2015년도에 대규모 문법적 향상(화살표함수, let, const등)이 있었기에 항상 언급됨.
2015년도 이전 - var

let(변수), const(상수)

const는 재할당 x
let은 재할당 o
var는 선언도 다시 가능하지만 let, const는 재선언 x

ES6문법

구조분해할당 : destructuring

de = not
structure = 구조
배열이나 객체의 속성을 분해해서 그 값을 변수에 담을 수 있게 해주는 문법.

단축 속성명 : property shorthand

많은 개발자들이 사용하고있기때문에 해당 문법을 모르면 '이거 객체형태인데 왜 이렇게 썻지'라고 생각할 수 있음.

전개 구문 = spread operator

destructuring과 함께 가장 많이 사용되는 es6 문법 중 하나.

나머지 매개변수(rest parameter)

매개변수의 개수를 정확히 모를 때 ...args를 사용해서 추가적으로 어떠한 매개변수가 들어올 수 있음을 명시해줄수 있다.

탬플릿 리터럴(Template Literal)

활용도 매우 높음
멀티 라인을 지원함.
백틱(``)을 사용하면 문자열 출력 뿐만 아니라 ${}를 통해 JS코드(변수, 연산등)를 넣을 수 있다.

일급 객체로서의 함수

일급 객체 - 다른 객체에 일반적으로 적용 가능한 연산을 모두 지원하는 객체.
=> 함수를 매우 유연하게 사용할 수 있음.

  1. 변수에 함수를 할당할 수 있다.
    함수가 마치 값으로 취급된다.
    함수가 나중에 사용될 수 있도록 조치가 되었다.

  2. 함수를 인자로 다른 함수에 전달할 수 있다.
    2.1 콜백함수 : 매개변수로써 쓰이는 함수
    2.2 고차함수 : 함수를 인자로 받거나 return하는 함수(콜백함수는 고차함수의 한 종류)

  3. 함수를 반환할 수 있다.

  4. 객체의 프로퍼티로 함수를 할당
    객체의 메소드로 함수를 호출 가능.
    화살표함수는 this를 바인딩하지 않는다.

  5. 배열의 요소로 함수를 할당
    함수를 배열에서 사용 가능. -> 반복되는 코드를 처리해 효율적인 코드를 만들 수 있다.

Map

JS -> 객체, 배열을 사용해 많고 다양하고 복잡한 프로그램을 만들어옴.
그럼에도 현실 세계를 반영하기는 어려움
Map이나 Set 같은 추가적인 자료구조가 등장하게 됨.

Map, Set의 목적 - 데이터의 구성, 검색, 사용을 기존의 객체나 배열보다 빠르고 효율적으로 처리한다.

Map

Key - Value(Key에 어떤 데이터 타입도 다 들어올 수 있다. -> Key가 정렬된 순서로 저장되기 때문.)
기능 - 검색, 삭제, 제거, 여부확인

Map을 쓰는 이유? - 대량데이터의 처리를 위해. -> 반복적인 부분 상당히 중요.
반복을 위한 메서드 - keys, values, entries
데이터 형태가 Iterator(반복자)일때 for of문 사용가능. - keys, values, entries가 모두 Iterator이므로 for of문을 사용할 수 있다.

Set

고유한 값을 저장하는 자료구조.(값만 저장, 키를 저장하진 않음.)
값이 중복되지 않는 유일한 요소로만 구성된다.
기능 - 값 추가, 검색, 값 삭제, 모든 값 제거, 존재 여부 확인.
Set = 집합 - 교집합, 차집합도 흉내 낼 수 있음.
집합이므로 중복된 값을 넣었을 때는 추가되지않는다.

느낀점

탬플릿 리터럴을 배우면서 백틱(``)의 존재를 알게 되었는데, 내가 작성했던 변수나 연산을 그대로 넣어서 사용할 수 있는 것과 따로 줄바꿈 없이 엔터로 줄바꿈을 해서 작성해도 출력에 반영된다는 것에서 조금 충격받았다.

0개의 댓글