본문 바로가기

Javascript39

JavaScript - Callback 자바스크립트는 싱글 스레드 방식으로 코드를 처리하기 때문에 동기적이라 볼 수 있다. * 동기(Synchronous)는 요청을 보내고 요청의 응답을 받아야 다음 코드로 넘어가는 방식이고, 비동기(Asynchronous)는 요청을 보내고 응답과 관계없이 다음 코드를 실행하는 방식이다. 그래서 호이스팅(hoisting)이 된 이후부터는 코드가 작성한 순서에 맞춰서 동기적으로 실행된다. 이런 동기적 처리는 대량의 데이터를 요청 또는 서버에서 요청에 대한 응답을 언제 줄 지 모르기 때문에 지연된다. 이런 문제점을 해결하기 위해 여러 방법을 통해 자바스크립트를 비동기로 조작할 수 있다. 콜백(Callback) 함수란 다른 함수의 인자로써 이용되는 함수 또는 어떤 이벤트에 의해 호출되는 함수이다. 위 예에서 보면 s.. 2021. 2. 28.
JavaScript - setTimeout과 setInterval 그리고 requestAnimationFrame 함수를 당장 실행하지 않고 딜레이 후 실행하고 싶을 때 구현할 수 있는 두 가지 메서드가 있다. setTimeout - 설정해놓은 최소 시간 이후 함수가 한번 실행된다. setInterval - 설정해놓은 최소 시간 마다 일정 간격으로 함수가 주기적으로 실행된다. setTimeout 문법 let example = setTimeout(function|code, [delay], [arg1], [arg2], ...); 파라미터 function | code는 실행을 위한 함수나 문자열이다. 주로 함수를 받으며, 코드의 문자열도 넘길 수 있지만 권장하지 않는다. delay는 실행하기 전의 딜레이 즉, 최소 시간이다. ms단위로 이루어져 있으며, 1000ms = 1s이다. 기본값은 0이다. arg1, arg2..는.. 2020. 9. 21.
JavaScript - Message Queue and Event Loop Message Queue Message Queue는 아래 글 참고 2020/09/03 - [Javascript] - JavaScript - Call Stack(호출 스택) JavaScript - Call Stack(호출 스택) Call Stack 자바스크립트는 싱글 스레드(single-threaded) 프로그래밍 언어이기 때문에, 콜 스택이 하나이다. 따라서 한 번에 하나의 일만 할 수 있다. 콜 스택은 함수의 호출들을 기록하는 자료구조이�� su1993.tistory.com Event Loop Event Loop는 Call Stack과 Callback Queue의 상태를 체크하여 Call Stack이 빈 상태가 되면, Callback Queue의 첫 번째 콜백을 Call Stack으로 밀어 넣는다. 이.. 2020. 9. 18.
JavaScript - IIFE, Modules and Namespaces IIFE IIFE(Immediately Invoked Function Expression)는 정의와 동시에 즉시 실행되는 함수를 의미한다. (function() { statements })(); Self-Executing Anonymous Function으로 알려진 디자인 패턴이고 크게 두 부분으로 구성된다. 첫 번째는 괄호((), Grouping Operator)로 둘러싸인 익명함수(Anonymous Function)이다. 이는 전역 스코프에 불필요한 변수를 추가해서 오염시키는 것을 방지할 수 있을 뿐 아니라 IIFE 내부 안으로 다른 변수들이 접근하는 것을 막을 수 있다. 두 번째는 즉시 실행 함수를 생성하는 괄호() 이다. 이를 통해 자바스크립트 엔진은 함수를 즉시 해석해서 실행한다. 아래 함수는 .. 2020. 9. 18.