성장에 목마른 코린이

TIL 220729 (코어자바스크립트 page 36-47) 본문

Today I Learned

TIL 220729 (코어자바스크립트 page 36-47)

성장하는 코린이 2022. 7. 29. 22:42
728x90

오늘의 계획

1. 오전 10:00 - 12:00 + 저녁시간 활용해서 이력서 2군데 제출하기 / 기업 분석

2. 오후 2:00 ~ 5:00 프로젝트 팀미팅

3. 코어 자바스크립트 책 읽고 중요한 내용 기록하기!

5. TypeScript 강의

책에서 읽은 중요한 내용!

실행 컨텍스트는 실행할 코드에 제공할 환경 정보들을 모아놓은 객체로,

자바스크립트의 동적 언어로서의 성격을 가장 잘 파악할 수 있는 개념입니다. 

실행 컨텍스트는 자바스크립트에서 가장 중요한 핵심 개념 중 하나입니다.

동일한 환경에 있는 코드를 실행할 때 필요한 환경 정보들을 모아 컨텍스트를 구성하고, 이를 콜 스택에 쌓아 올렸다가,

가장 위에 쌓여있는 컨텍스트와 관련 있는 코드들을 실행하는 식으로 전체 코드의 환경과 순서를 보장합니다.

 

VariableEnvironment: 현재 컨텍스트 내의 식별자들에 대한 정보 + 외부 환경 정보,

선언시점의 LexicalEnvironment의 스냅샷으로, 변경 사항은 반영되지 않음

LexicalEnvironment: 처음에는 VariableEnvironment와 같지만 변경사항이 실시간 반영됨.

ThisBinding: this 식별자가 바라봐야 할 대상 객체.

 

TypeScript 강의

위의 예시는 일일이 필요한 Call Signature를 만들어 주는데,

Generic하게 사용하는 방법을 알려주겠다.

이 예시처럼 사용하면, 일일이 Call Signature를 지정해줄 필요가 없이 사용할 수 있다.

이런 식으로, 많이 사용하게 될 것이다.

이렇게 말고, any를 써도 되지 않나? 라는 생각이 들 수 있지만,

위의 예시처럼 만약 .toUpperCase() 메소드를 사용했을때,

숫자를 uppercase로 만들수 없기에 에러를 남겨줘야하지만 타입스크립트의 보호를 해제하기 때문에

아무런 에러를 남기지 않습니다.

만약 Generic 하게 사용하게 된다면, any의 예시와는 다르게 에러를 출력하는 것을 볼 수 있습니다.

Generic은 요구한 대로 signature를 생성해줄 수 있는 도구라고 생각할 수 있습니다.

지금은 parameter가 2개 있기때문에, parameter가 하나있는 b는 에러가 출력되고있습니다.

처음 보여줬던 예시처럼 하는게 조금 무섭게 생겼다면, 이렇게도 사용할 수 있습니다!

이건 자동완성의 타입스크립트 표준 라이브러리인데, 보면 Array옆에 <T>라고 있습니다.

이것도 Generic을 사용하는 경우라, 활용해서 배열안에 어떤 값이든 넣어줄 수 있습니다.

이것도 Generic을 활용하는 또 하나의 방법입니다.

오늘의 회고

오늘은 프로젝트 미팅이 있던 날인데요, 소켓I.O 진행 한것까지 중간 점검을 하기로한 날인데,

다들 지금 진행하고 있는 사항이 많고, 또 생각보다 구현하고자 하는게 간단하지 않다보니

다음주 목요일에 다음 중간점검을 하고,

Devlog 작성을 하며 서로 진행한 사항에 대해 공유하기로 했습니다.

Comments