프론트엔드/[언어] 자바스크립트6 클로저 (Closures) 자바스크립트에서 클로저(Closure)는 특정 함수가 자신이 선언될 당시의 환경(lexical environment)을 기억하는 현상을 말합니다. 클로저는 내부 함수가 외부 함수의 스코프에 있는 변수에 접근할 수 있게 하며, 외부 함수가 실행을 마친 후에도 그 변수를 기억합니다. 핵심 포인트는 다음과 같습니다: 함수 내의 함수: 클로저는 일반적으로 내부 함수가 외부 함수의 변수에 접근할 때 생성됩니다. 내부 함수는 외부 함수의 지역 변수에 접근할 수 있습니다. 변수의 지속성: 외부 함수가 실행을 마치고 반환되더라도, 내부 함수는 외부 함수의 변수에 대한 참조를 유지합니다. 이는 내부 함수가 호출될 때마다 해당 변수들이 여전히 사용 가능하다는 것을 의미합니다. 데이터 은닉과 캡슐화: 클로저를 사용하면 다른.. 2024. 3. 12. [Lexical Scope] Static Scoping vs. Dynamic scoping JavaScript는 정적 스코핑(static scoping), 또는 **렉시컬 스코핑(lexical scoping)**을 사용합니다 이는 변수가 코드를 작성하는 시점에서의 범위에 따라 결정된다는 것을 의미합니다. 즉, 함수나 블록 내에서 변수를 참조할 때, JavaScript는 해당 변수가 코드 내에서 어디에 선언되었는지에 기반하여 변수의 범위를 결정합니다. (In JavaScript, lexical scope is the concept of determining the scope of a variable based on its declaration. This means that the scope of a variable is determined by the block of code in which i.. 2024. 3. 5. 자바스크립트의 객체참조모델과 가비지콜렉션 1. 자바스크립트의 객체 참조 모델 자바스크립트에서 객체는 참조 타입입니다. 이는 변수에 객체를 할당할 때, 실제 객체 자체가 아니라 객체의 메모리 주소(참조)가 저장된다는 것을 의미합니다. (1) 객체 참조 모델의 주요 특징: 참조에 의한 할당과 전달: 자바스크립트에서 객체를 변수에 할당하거나 함수에 인자로 전달할 때, 실제로 전달되는 것은 객체의 참조(메모리 주소)입니다. 이는 두 변수가 동일한 객체에 대한 참조를 공유할 수 있음을 의미합니다. 공유된 참조: 두 변수가 같은 객체를 참조하고 있을 때, 한 변수를 통해 객체의 속성을 변경하면 다른 변수를 통해 객체를 조회했을 때도 이 변경사항이 반영됩니다. 이는 두 변수가 같은 메모리 위치를 가리키고 있기 때문입니다. 변경 불가능성과 참조: 기본 데이터.. 2024. 2. 27. Single Thread 0. 스레드란? https://dotyori.tistory.com/106 프로세스와 스레드 0. Thread가 뭘까? (1) 프로세스 실행 중인 프로그램의 인스턴스. 운영 체제에서는 프로세스를 시스템의 기본 실행 단위로 취급함. 각 프로세스는 독립적인 메모리 주소 공간을 가지며, 다른 프로세 dotyori.tistory.com 예를 들어, 브라우저를 프로세스라고 생각하면 블로그 글 작성하는 스레드1, 유튜브 영상 틀어놓기 스레드2 프로세스 - 프로그램의 작업 단위, 스레드 - 프로세스의 실행단위 1. 자바스크립트는 싱글 스레드 언어 자바스크립트는 기본적으로 싱글 스레드 언어입니다. 이는 자바스크립트 엔진이 한 번에 하나의 작업만 수행할 수 있음을 의미합니다. 여기서 '스레드'란 프로그램이나 프로세스 내에.. 2024. 2. 27. 자바스크립트에서 == 와 === 의 차이? 자바스크립트에서 ==와 === 연산자는 모두 값의 비교에 사용되지만, 두 연산자 사이에는 중요한 차이가 있습니다. == (동등 연산자) == 연산자는 "동등 연산자"로 알려져 있으며, 두 값이 같은지 비교할 때 사용됩니다. 이 연산자는 타입 변환을 수행합니다. 즉, 비교하는 두 값의 타입이 다를 경우, 자바스크립트는 두 값을 동일한 타입으로 변환한 후 비교합니다. 이 과정에서 예기치 않은 결과가 발생할 수 있습니다. 예를 들어, 0 == '0' 은 true를 반환합니다. 숫자 0과 문자열 '0'은 타입이 다르지만, 자바스크립트는 문자열 '0'을 숫자 0으로 변환하여 두 값이 같다고 평가합니다. === (일치 연산자) === 연산자는 "일치 연산자"로 알려져 있으며, 두 값이 같은지 비교할 때 사용됩니다... 2024. 2. 26. 코어 자바스크립트 [1] - 데이터 타입 1. 데이터 타입 종류 자바스크립트에서 데이터는 크게 기본형(Primitive)과 참조형(Reference) 데이터 타입으로 나뉩니다. 이 둘 사이의 주요 차이는 데이터가 메모리에 저장되고, 변수에 할당되며, 그리고 다른 변수로 복사될 때 어떻게 처리되는지에 있습니다. 기본형 데이터 타입(Primitive Data Types) 기본형 데이터 타입에는 숫자(Number), 문자열(String), 불리언(Boolean), null, undefined, 심볼(Symbol), 그리고 ES2020에서 도입된 BigInt 등이 있습니다. 이들은 다음과 같은 특징을 가지고 있습니다: 값이 직접 저장됩니다: 변수에 기본형 데이터를 할당하면, 메모리에는 그 값 자체가 저장됩니다. 값에 의한 복사(Value Copy): .. 2024. 2. 26. 이전 1 다음