frontend
-
스코프(Scope)frontend/javascript&web 2022. 2. 9. 19:47
Concept By 스코프(Concept By Scope) 스코프(Scope) 현재 접근할 수 있는 변수들의 범위 쉽게 말해 실행 컨텍스트에서 접근 가능한 변수라고 생각하면 됩니다. 스코프에는 총 3가지 개념이 있습니다. 함수 스코프 렉시컬 스코프 블록 스코프 우리는 이미 렉시컬 스코프를 클로저에서 만나보았습니다. 사실 함수와 블록 스코프도 이미 호이스팅에서 맛은 보았다고 볼 수 있습니다. 먼저, 함수 스코프를 기반으로 설명해드리겠습니다. 예시 var ratio = 1.6; // (1) function getIncreaseSalary(salary){ // (2) var total = salary * ratio; return total; } var nextYearMySalary = getIncreaseSa..
-
호이스팅(Hoisting)과 클로저(Closure)frontend/javascript&web 2022. 2. 8. 23:18
Concept By 호이스팅과 클로저(Concept By Hoisting & Closure) 호이스팅(Hoisting) 변수 및 함수 선언 부가 유효 범위 최상단으로 올라가는 현상 앞서 우리는 실행 컨텍스트와 콜 스택 관련 글에서 함수와 변수 등이 메모리에 적재되는 과정을 볼 수 있었습니다. 이러한 적재과정에서 벌어지는 유효범위 최상단으로 선언부가 끌어올려지는 특성을 호이스팅이라고 부릅니다. 예시와 함께 알아 보겠습니다. 예시 console.log(writer); var writer = "류호진"; 이 코드를 바탕으로 우리는 이제 실제 동작 과정을 한번 보겠습니다. var writer = "류호진"; // (1) 전역 컨텍스트의 메모리 writer : 류호진 (1) 스크립트가 실행되면 전역 실행 컨텍스트..
-
콜 스택(Call Stack)frontend/javascript&web 2022. 2. 6. 10:10
Concept By 콜 스택 (Concept By Call Stack) 실행 컨텍스트 현재 실행되고 있는 실행 컨텍스트를 추적하기 위한 구조체 앞서 실행 컨텍스트에 대해 알아 보았으니 그것을 추적하기 위한 구조체인 콜스택에 대해서 예제와 함께 알아보겠습니다. 예시 function sayAtoB(a,b){ // (1) let message = `${a}님이 ${b}님을 호출하셨습니다.`; return message; } function employee(a,b,func){ // (2) let result func(a,b) return result; } let action = employee("류호진","홍길동",sayAtoB); // (3) 전역 실행 컨택스트 전역 메모리 sayAtoB : fn (1) em..
-
실행 컨텍스트(Excution Context)frontend/javascript&web 2022. 2. 4. 12:00
Concept By 실행 컨텍스트 (Concept By Excution Context) 실행 컨텍스트 코드의 실제 진행 상황을 추적하는데 필요한 정보를 모아둔 구조 자바스크립트가 로드 되고 엔진이 이를 처리하면서 실행 컨텍스트를 만듭니다. 실행 컨텍스트는 어떤 코드를 실행하고 있고 이 컨텍스트에는 어떤 변수가 있는지에 대한 정보를 가지고 있습니다. 예시 function appedString(str1, str2) { //(1) let result = `${str1}${str2}`; return result; } let appended = appendString("류호진","붙임"); //(2) 전역 실행 컨텍스트 전역 메모리 appendString : fn (1) appended : (2) 먼저 전역에 선..