TS는 JS의 슈퍼셋(JS의 모든기능을 포함한)이다.
Typescript는 정적 타입
Javascript는 동적 타입
TS를 사용하는 이유?
JS의 경우 예시로 let a = 3; a='삼'이라 했을때도 결과를 출력해주는데 TS는 JS의 수식에도 오류를 출력한다. 문자열과 숫자열은 같이 사용할 수 없기 떄문이다.
Time
Typescript는 변수의 타입이 컴파일타임(작성한 소스코드가 어떠한 것(js)으로 변환되는 과정)에 결정된다
Javascript는 변수의 타입이 런타임(프로그램이 실행되는 과정)에 결정된다
==그래서 TS의 경우 vscode같은 곳에 코드를 작성하면 바로 오류가 출력되어 유지보수가 편하다.
JS의 단점 : 런타임 시 오류가 검출, 프로젝트 사이즈가 커지면 유지보수가 어렵다
TS유지보수가 JS보다 유리하다.
TS는 왜 유지보수가 유리할까 ? JS는 동적 타입언어니까 없는 프로퍼티를 쳐도 출력하기 전까지는 결과를 알 수가 없는데 TS의 경우 없는 프로퍼티를 친다면 오류를 발생한다.
TS(TypeScript)설치

//프로젝트 설정(packge.json이 생성된다)
npm init -y
//해당폴더에서만 사용가능하다.전역적으로 설치하고 싶을땐 --g추가하기
npm install --g typescript
//타입 스크립트 컴파일러.tsc모듈로 초기화하는데 한번만쓰고 없애겠다.
npx tsc --init
tsconfig.json에서 target과 modules를 확인한다.
Target은 config.json의 주석에 적혀있는 js버전을 의미한다. shift + space를 누르면 어떤 버전이 있는지 확인이 가능.
modules은 TS에서 JS로 전환될 때 import를 어떻게 변환할지 정하는 곳.
common.js는 임포트문법을 리콰이어 문법으로/ ex2015는 임포트 문법 그대로
TS에서 JS로 변환하는 과정을 트랜스파일 == 컴파일러.
#후발대
면접질문타임
SPA와 MPA 차이
DOM과 가상DOM의 대해 설명하기
가상 DOM - 실제 DOM에서 속성 등의 모든것을 공유하는 복사본이다. 대신 api가 없다.(ex: getElementById나 Create같은)그래서 JS의 오브젝트처럼 키와 값으로 나눈다. if initialState같다..


버추얼 dom의 예시 ..완전 initialstate같다.
root.render를 하는데 한번만 하니까 spa인데 여기서 root를 가져오는 과정을 왼쪽의 형태로 진행한다.
리액트는 batch update를 하기때문에 딱 한번만 렌더한다.
비동기의 배치성 업데이트니까 state변경시 렌더링하는건데..그냥 setState으로만 지정해버리면 undefined가 출력된다. ※setState의 비동기 해결로 확인해보자.
자바스크립트의 런타임 환경?
노드 브라우저
불변성은 무엇이며, 리액트에서 왜 중요한가요?
메모리에 있는값인데 이제 못 바꾸는 값...대전제가 메모리에 있는값이 바뀌지 않았으면 안바뀐거다..라고 정의했기 때문에 리액트에서 중요하다 . 불변성 함수(배열과 obj, map, filter를 추가하면 더 좋다)
일반 함수와 화살표 함수의 가장 큰 차이점은 무엇인가?
this 바인딩을 안해요.근데 일반함수는 바인딩 해. 가리킨것을 묶는거 = 새로운 것을 할당하는데 화살표함수는 그걸 안한다.
export와 export default는 ?
export 할 경우에는 import { 함수명 } from * 으로 사용하는데, export default 하실 경우에는 import 함수명 from.
export는 여러 함수를 가져올 수 있지만 export default는 대표적인 것 하나만 가져옴
프롭 드릴링 ?
자식컴포넌트에게 부모 컴포넌트가 가진 속성을 내려주는 것, 하지만 프롭스드릴링이 반복되면 에러가 나도 해당 프롭스가 어디서 온지 모르기 때문에 유지보수가 어려워진다.
그래서 프롭드릴링을 대신 콘텍스트 api 그 다음은 리듀서를 사용한다.
순수함수?
개입이 전혀 없는 함수..리액트가 바로 순수함수이기 때문이다.
CSR과 SSR을 SEO관점에서 얘기해보자..
CSR 클라이언트(ex:리액트)를 쪼개서 렌더링 하다. 리액트에서 필요한 div를 찾는다.얘는 html밖에 없으니까 seo에 불리..
SSR은 index.html 하나뿐이라 크롤링 봇이 가져갈 게 없어서 seo 취약함. 오가닉제이션. seo관점에서는 이게 더 유리하다. 이게 next.js다..으아악...
'[내일배움캠프] > TIL' 카테고리의 다른 글
| 23.01.18) Typescript기초와 타임어택을 한 57일차 (0) | 2023.01.18 |
|---|---|
| 23.01.17) Typescript기초를 들은 56일차 (0) | 2023.01.17 |
| 23.01.13) React native프로젝트 마무리한 54일차 (0) | 2023.01.16 |
| 23.01.12) React native프로젝트 마무리작업한 54일차 (0) | 2023.01.12 |
| 23.01.11) React native프로젝트 버튼컴포넌트를 작업한 53일차 (0) | 2023.01.11 |