본문 바로가기

JavaScript3

[Javascript] Javascript 동작방식 (JS엔진, 호이스팅, 실행컨텍스트, 스코프 체인) Javascript는 싱글스레드 기반 언어입니다. 따라서 한 순가에 하나의 작업만 처리할 수 있습니다.아래는 자바스크립트 웹 브라우저가 작동하는 구조 입니다. 자바스크립트를 웹 브라우저에서 작동하기 위해서는 JS 엔진, Web APIs, Callback Queue(Task Queue), Event Loop 영역이 필요합니다.   결론을 간단히 말하자면, JS 엔진에서는 단일 호출 스택(Call Stack)을 이용하여 동기적으로 요청을 처리하고 나머지 영역에서 웹 브라우저 환경 속에서의 자바스크립트가 비동기적으로 처리할 수 있게 지원해주는 역할을 합니다.    즉, 자바스크립트가 비동기적으로 동작하는 동시성은 JS 엔진을 구동하는 환경인 웹 브라우저나 Node.js에서 지원합니다. 1. 자바스크립트 엔진가.. 2024. 10. 29.
[TypeScript] 타입 단언, 타입 가드, 타입 호환 타입스크립트를 오래 사용해 왔지만 가끔 까먹는 내용때문에 막힐때마다 시간낭비하고 싶지 않아서 공부한 내용을 정리하고 포스팅하려고 한다. 타입을 명시하는 타입 단언(Assertion) 유니온 등에서 타입의 경우를 좁혀가는 타입 가드(Guard) 타입 간의 호환성을 판단하는 타입 호환(Compatibility) 위 세 개 항목에 대해 정리해보겠다. 💜 타입 단언 [변수] as [타입] 타입 단언이란, 타입스크립트가 추론하지 못하는 타입을 개발자가 직접 명시해주는 문법이다. 컴파일러가 실제 런타임에 존재하는 변수 타입과 다르게 추론하거나, 너무 보수적으로 추론하는 경우 개발자가 수동적으로 조작하기 위해 사용한다. 타입 단언은 Type Casting 과는 달리, 실제 데이터 타입을 변경하지 않고 에러만 방지한다.. 2024. 4. 12.
[Bun] Bun 이란? Bun 설치 및 사용법 Bun 이란? node.js, deno 와 같이 javascript runtime 패키지 중 하나이다. Bun의 공식 홈페이지에 의하면 pnpm보다l 17배, yarn보다 33배, pnpm보다 17배 빠르다고한다. 1. node.js C++을 기반으로 개발한 오픈 소스로, javascript라는 언어를 JIT컴파일러를 기반으로 기계어로 해석해주는 V8엔진을 통해 빌드된 javascript 런타임 환경이다. 2. deno deno는 node환경에 여러 문제(보안, async, typescript 등)를 해결하기 위해 나왔다. V8엔진과 Rust, Typescript를 기반으로 작성하여 안정성이 높고, 패키지 의존성을 내부로 옮겨 npm이 필요 없고, 컴파일 없이 Typescript를 지원하고 있다! 3. .. 2024. 4. 8.