- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 리팩터링 2판
- Git
- 프로그래머스
- Docker
- LEVEL 1
- MariaDB
- LEVEL1
- Err-Handling
- mongodb
- 에러핸들링
- CSS
- typescript
- sql
- 오늘도 개발자가 안된다고 말했다
- 면접을 위한 cs 전공지식 노트
- TWIL
- javascript
- LEVEL 2
- TIL
- 코어 자바스크립트
- Refactoring
- First Project
- react
- CRUD
- java
- 코딩테스트
- 배포
- TMIL
- 아고라스테이츠
- 알고리즘
성장에 목마른 코린이
TIL 220729 (코어자바스크립트 page 36-47) 본문
오늘의 계획
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 작성을 하며 서로 진행한 사항에 대해 공유하기로 했습니다.
'Today I Learned' 카테고리의 다른 글
TIL 220802 (커리어 스킬 page 77 - 85) (0) | 2022.08.02 |
---|---|
TIL 220801 (리팩토링 2판 page 85 - 91) (0) | 2022.08.01 |
TIL 220728 (오늘도 개발자가 안 된다고 말했다 page 42-53) (0) | 2022.07.28 |
TIL 220727 (클린 코드 page 12 - 15) (0) | 2022.07.27 |
TIL 220726 (커리어 스킬 page 72 - 76) (0) | 2022.07.26 |