본문 바로가기
  • 개발 / 공부 / 일상

Javascript28

(JavaScript) Callback 함수 목차) Callback 함수란? Callback 함수의 필요성 Callback 함수를 만드는 법 Callback 지옥 Callback 함수의 정의 다른 함수가 실행을 끝난 뒤에 실행되는 함수 함수 안에서 어떤 특정한 시점에 호출되는 함수 다른 함수의 매개변수로 함수를 전달하고, 어떠한 이벤트가 발생한 후 매개변수로 전달한 함수가 다시 호출되는 것 파라미터로 함수를 전달받아, 함수의 내부에서 실행하는 함수 예시) 식당에 웨이팅이 걸려서 식당 앞에 있는 어플로 핸드폰번호를 적어 두고 입장 대기를 걸어둔다 이후 다른 식당이나 쇼핑 등 마냥 기다리는 게 아닌 다른 행동을 하면서 기다린다 적어둔 핸드폰번호로 입장하라는 말이 올 때 식당으로 가는 것이 callback함수가 호출되는 시점이라고 할 수 있다 Callb.. 2023. 4. 4.
(Javascript) Javascript Runtime Runtime 이란? 프로그래밍 언어가 구동되는 환경 어떤 프로그램이 동작할 때, 프로그램이 동작하는 장소 JS Runtime 종류 웹 브라우저 HTML 태그 내에 JS 코드를 작성하면 웹 브라우저에서 작동 Nodejs CLI 환경에서 node (js 파일이름) 명령어를 입력하면 nodejs 런타임 아래에서 작동 일종의 JS 실행 JS Engine, Web APIs, Callback Queue, Event Loop 등으로 이루어져 있다 Memory Heap + Call stack으로 구성된 JS Engine ( V8 : 오픈 소스 JS엔진 ) 이벤트 리스너에 의해 실행되어 해당 이벤트에 실제로 어떤 수행을 할지를 결정하는 이벤트 핸들러를 모아둔 Callback Queue (Task Queue) Call .. 2023. 4. 4.
(JavaScript) JS 동작원리 JS Engine Call Stack과 Memory Heap으로 데이터 및 코드 실행을 관리 Memory Heap 메모리 할당이 일어나는 곳, 선언한 변수나 함수 등이 이곳저곳에 무작위하게 담겨져 있다 Call Stack 코드가 실행될 때 쌓이는 곳, 자료구조의 stack과 같은 원리(선입후출) Web APIs JS Engine만으로 웹이 동작하지 않고 그 외적인 요소들의 동작도 런타임으로 이루어 진다 브라우저에서 제공하는 Web APIs 중 대표적 3가지 DOM(document) Ajax(XMLHttpRequest) Timeout(setTimeout) Call Stack에서 실행된 비동기 함수들은 Web API를 호출하고 그 호출된 함수의 Callback Function을 queue에 밀어 넣는다 Ca.. 2023. 4. 2.
(Javascript) mergeSort mergeSort 전체 데이터를 하나의 단위로 분할한 후 다시 합치면서 정렬하는 방식 function merge(leftArr, rightArr) { const result = []; let leftIdx = 0, rightIdx = 0; while (leftIdx < leftArr.length && rightIdx < rightArr.length) { if (leftArr[leftIdx] < rightArr[rightIdx]) { result.push(leftArr[leftIdx++]); } else { result.push(rightArr[rightIdx++]); } } return [ ...result, ...leftArr.slice(leftIdx), ...rightArr.slice(rightIdx.. 2023. 1. 16.