JavaScript

· JavaScript
기술 면접 대비를 위해 주요한 개념을 복습하고, 나의 말로 정리를 해본다. 자바스크립트 비동기 처리 과정 & Event Loop 자바스크립트 엔진은 기본적으로 하나의 Thread에서 동작함 하나의 Thread === 하나의 Stack === 동시에 단 하나의 작업만 할 수 있다 자바스크립트 엔진은 하나의 코드 조각을 하나씩 실행, 비동기적으로 이벤트를 처리하거나 Ajax 통신을 하는 작업은 사실상 Web API에서 모두 처리 자바스크립트가 동시에 단 하나의 작업만 한다고 하는데, 어떻게 여러가지 작업을 비동기로 할 수 있을까? → Event Loop와 Queue 덕분 이벤트루프는 반복해서 Call Stack과 Queue 사이의 작업을 확인하고, Call Stack이 비워진 경우 Queue에서 작업을 꺼내..
· JavaScript
자바스크립트의 동작 원리 자바스크립트 엔진은 메모리 힙(Memory Heap)과 콜 스택(Call Stack)이라는 구조를 통해 데이터 및 코드 실행을 관리한다. 메모리 힙은 메모리 할당이 일어나는 곳이며, 콜 스택은 코드 실행에 따라 호출 스택이 쌓이는 곳이다. 자바스크립트는 싱글 스레드 기반의 언어로, 하나의 스레드 단위로 실행이 되는 흐름을 갖는다. 하나의 스레드에서는 하나의 Call Stack으로 현재 어떤 함수가 동작하고 있는지, 그 함수 내에서 어떤 함수가 동작하고 다음에 어떤 함수가 호출되어야 하는지 등을 제어한다. 자바스크립트 엔진(메모리 힙, 콜 스택)만으로 웹이 동작하진 않는다. 그 외적인 요소들의 동작도 런타임으로 이루어진다. 브라우저에서 제공하는 Web API들(DOM, Ajax, ..
· JavaScript
this ? 자바스크립트에서 this는 무엇을 의미할까? 자신이 속한 객체 또는 자신이 생성할 인스턴스를 가리키는 자기 참조 변수(self-reference variable)를 말한다. 여기서 가리키는 대상이 '또는'으로 바뀌는 이유는, 어디에서 어떻게 호출하느냐에 따라 this의 값이 결정되기 때문이다. 전역 범위 전역 범위(Global context), 자바스크립트에서 일반적으로 this를 호출하면, this는 window라는 전역 객체를 가리킨다. window 객체라는 것은 현재 실행되고 있는 자바스크립트의 모든 변수, 함수, 객체 DOM 등을 포함하고 있는 객체로, 만물의 근원이 되는 객체이다. 함수 범위 함수 내에서 this를 호출할 경우, 현재 실행되고 있는 코드의 문맥(context)에 따라..
· JavaScript
얕은 복사 vs 깊은 복사 한마디로 정리하면 얕은 복사는 객체의 참조값(메모리 주소 값)을 복사하고, 깊은 복사는 객체의 실제 값을 복사한다. 얕은 복사와 깊은 복사를 이해하기에 앞서 데이터 타입에 대한 이해가 필요하다. 데이터 타입 자바스크립트에서 모든 데이터는 원시형과 참조형으로 두 가지 데이터 타입이 존재하는데, 원시형(기본형, Primitive type)은 기본 자료형(단순한 데이터)를 의미한다. number, string, boolean, null, undefined 등이 해당한다. 변수에 원시값을 저장하면 변수의 메모리 공간에 실제 데이터 값이 저장된다. 할당된 변수를 조작하려고 하면 저장된 실제 값이 조작된다. 참조형(Reference type)은 여러 자료형으로 구성되는 메모리에 저장된 객..
· JavaScript
이중 등호(==)와 삼중 등호(===)의 차이 자바스크립트에서 이중 등호(==)와 삼중 등호(===)는 모두 비교에 사용되며, 비교 대상간의 동일성 또는 동일성의 정도를 파악하는데 사용된다. 두 가지 모두 비교 대상이 동일하면 true를 반환하고, 그렇지 않으면 false를 반환한다. 결과를 내는 방식은 같지만, 이 둘은 서로 다른 기준을 사용해 동일성을 판단한다. 이중 등호(==)는 비교를 하기 전 유형 강제를 수행하기 때문에 종종 '느슨한 등호'라고도 한다. 즉, 비교하려는 피연산자의 데이터 타입이 다른 경우 자바스크립트 엔진은 비교를 가능하게 하기 위해 피연산자 중 하나를 다른 피연산자와 동일하게 자동 변환한다. const a = 100; const b = '100'; console.log(a ==..
· JavaScript
[인프런] 자바스크립트 알고리즘 문제풀이 입문 강의에서 재귀함수와 스택프레임에 대한 내용이 중요하고 어려워서 정리해본다. 내용 시작 전에 먼저 DFS(Depth-First Search: 깊이 우선탐색)와 BFS(Breadth-First Search: 너비 우선탐색)에 대해 간단한 이해를 돕는 영상을 보면 좋을 것 같다. 문제 자연수 N이 입력되면 재귀함수를 이용하여 1부터 N까지를 출력하는 프로그램을 작성하세요. 입력설명 첫 번째 줄은 정수 N(3
Jyophie
'JavaScript' 카테고리의 글 목록