JavaScript 3

JavaScript의 this

자바스크립트의 this는 함수의 호출 방식에 따라 바인딩되는 객체가 달라지는 식별자이다. 전역에서의 this 전역에서 this가 호출되었을 때 this는 전역 객체를 참조하게 된다.전역 객체는 javascript가 런타임 되는 환경에 따라 달라지게 되는데 브라우저에서는 window객체를node 환경에서 실행된 경우에는 global 객체를 참조하게 된다.console.log(this); //window 엄격 모드의 경우 전역에서의 this는 undefined값을 갖게 된다.'use strict';console.log(this); // undefined브라우저에서는 this에는 window 객체가 바인딩되므로 this를 통해 브라우저 API 와 전역 객체의 프로퍼티들을 참조할 수 있다.함수에서의 this함수..

JavaScript 2025.01.12

클로저- (Clouser)

클로저란함수와 그 함수가 선언됐을 때의 렉시컬 환경(Lexical environment)과의 조합이다.클로저는 내부 함수가 외부 함수의 변수나 함수에 접근할 수 있도록 해주는 메커니즘이다.클로저 작동 원리렉시컬 환경자바스크립트 엔진은 함수가 정의될 때 함수가 선언된 위치를 기준으로 렉시컬 환경을 생성한다.렉시컬 환경은 환경 레코드와 외부 환경에 대한 참조로 구성이 되는데 각각 다음과 같다.환경 레코드(Environment Record) : 현재 함수나 블록에서 선언된 모든 변수, 함수 선언 정보를 저장외부 환경에 대한 참조(Outer Environment Reference)  : 상위 스코프의 렉시컬 환경을 참조하여 스코프 체인 형성가비지 컬렉션자바스크립트 엔진은 더 이상 참조되지 않는 경우 가비지 컬렉..

JavaScript 2025.01.07

호이스팅

호이스팅이란?JavaScript 호이스팅은 인터프리터가 코드를 실행하기 전에 함수 , 변수 ,클래스를 해당 스코프의 맨 위로 끌어올린 것처럼 보이는 현상이다. 호이스팅이 발생하는 이유 자바스크립트 엔진은 코드를 실행하기 전에 코드를 평가하는 과정을 거치게 된다.이때 실행 컨텍스트가 생성되고, 자바스크립트 엔진은 선언문들을 먼저 평가하여 메모리에 할당한다.그 후에 코드가 실행되므로, 선언문을 만나기 이전에 변수나 함수 등을 실행하더라도 해당 선언문들이 메모리에 존재하게 되어 접근할 수 있게 된다.이때문에 선언문이 스코프의 최 상단으로 끌어올려진 것처럼 보이게 되는 것이다. 호이스팅의 종류변수 호이스팅코드 평가 단계에서 변수 선언문이 먼저 평가 되어 변수 선언 이전에 변수를 사용할 수 있는 현상var로 선언..

JavaScript 2025.01.05