본문 바로가기

programming study/JavaScript

(186)
14장 - 전역 변수의 문제점 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 14.1 변수의 생명 주기 변수의 생명 주기는 프로그램을 종료하지 않는 한 영원히 메모리 공간을 점유 즉, 전역 변수의 생명주기는 애플리케이션의 생명 주기와 같음 변수의 생명주기 : 메모리 공간이 확보된 시점부터 메모리 공간이 해제되어 가용 메모리 풀에 반환되는 시점까지를 말함 변수는 자신이 등록된 스코프가 소멸될 때까지 유효 참조가 안 될 때 가비지 콜렉터에 의해 해제되어 가용 메모리풀에 반환 14.1.1 지역 변수의 생명 주기 지역 변수의 생명 주기는 함수가 호출 되면 생성, 종료시 소멸 함수의 생명 주기와 일치 지역 변수의 호이스팅은 함수 내부에서 일어남 14.1.2 전역 변수의 생명 주..
13장 - 스코프(3) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 13.3 스코프 체인 함수가 중첩되면, 스코프 또한 중첩되어 계층적인 구조를 가짐 스코프 체인 : 스코프가 계층적으로 연결된 것 변수를 참조할 때 변수를 참조하는 스코프에서 검색을하여 없는 경우, 순차적으로 상위 스코프로 검색하게 됨 즉, 하위 스코프는 참조할 수 없음 스코프 체인은 물리적인 실체로 존재 렉시컬 환경: 스코프 체인을 묘사하는 자료구조 변수 선언이 실행 시에 식별자가 렉시컬 환경에 키로 등록 변수 할당시 식별자의 값을 변경 13.3.1 스코프 체인에 의한 함수 검색 함수도 식별자이므로 스코프를 가침 변수와 같은 스코프 체인을 가짐 13.4 함수 레벨 스코프 변수 선언시 var 키..
13장 - 스코프(2) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 13.2 스코프의 종류 전역 스코프: 코드의 가장 바깥 영역 스코프 지역 스코프: 블록 영역 스코프 13.2.1 전역과 전역 스코프 전역 스코프에서 선언된 전역 변수(식별자)는 어디서든지 참조할 수 있음 const petName = 'siru'; ​ function callPetName() { console.log(petName); // siru } 13.2.2 지역과 지역 스코프 블록 몸체 내부를 말함 지역 변수는 자신의 지역 스코프와 하위 지역 스코프에서 유효 상위 스코프에서 하위 지역 스코프를 참조할 수 없음 자바스크립트 엔진이 스코프 체인을 통해 참조할 변수를 검색 { const pet..
13장 - 스코프(1) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 13.1 스코프란? Scope: 유효범위 식별자의 유효한 범위 스코프를 통해 동일한 식별자 간의 충돌을 방지 같은 식별자를 사용할 수 있음 13.1.1 변수의 스코프 var, let, const에 따라 스코프가 차이가 있음 var는 함수 스코프 let, const는 블록 스코프 함수 스코프는 혼동을 야기하므로 블록 스코프인 let, const를 사용할 것 var 키워드는 같은 스코프에서 중복 선언 가능 13.1.2 식별자의 스코프 매개변수의 경우, 스코프는 함수 내부에 한정 모든 식별자는 자기 자신이 선언된 위치에 따라 스코프가 결정 됨 식별자: 변수, 함수 이름, 클래스 이름 13.1.3 식..
12장 - 함수(4) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 12.7 다양한 함수의 형태 12.7.1 즉시 실행 함수 IIFE Immediately Invoked Function Expression 단 한번만 호출되며 다시 호출될 수 없음 익명 함수로 주로 사용 그룹 연산자로 반드시 감쌀 것 함수 리터럴을 평가해서 함수 객체를 생성하기 위해 값을 반환할 수 있음 인수를 전달 가능 (function () { console.log('즉시 실행 함수!'); }()); // 즉시 실행 함수! 12.7.2 재귀 함수 자기 자신을 호출하는 함수 함수 내에서 자기 자신을 호출할 때 사용한 식별자는 함수 이름 함수 호출은 자동으로 생성된 식별자 재귀 함수는 탈출 조건..
12장 - 함수(3) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 12.5 함수 호출 함수를 가리키는 식별자와 소괄호 안에 인수를 입력하여 호출 인수는 쉼표로 구분 12.5.1 매개변수와 인수 매개변수 : 함수를 정의할 때 함수 외부에서 내부로 전달할 변수 함수 내부에서 변수 취급 초기화, 할당됨 인수 : 함수를 호출할 때 함수 내부로 전달할 표현식 자바스크립트에서 매개변수의 개수와 인수의 개수가 맞는지는 확인하지 않음 인수를 적게 넘겨, 매개변수가 할당되지 않으면 undefined 초과된 인수는 무시 이로 인해, 오류를 일으킬 수 있음 // 함수 정의 // petName : 매개변수(parameter) const callMyPet = (petName) =>..
12장 - 함수(2) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 12.4 함수 정의 자바스크립트는 4가지의 함수 정의 방법이 있음 함수 선언문 함수 표현식(함수 리터럴) Fucntion 생성자 함수 화살표 함수 12.4.1 함수 선언문 기본적인 형태는 함수 리터럴과 동일 함수 선언문은 함수명을 생략할 수 없음 익명 함수 불가능 함수명은 함수 몸체 내부에서만 유효한 식별자 자바스크립트 엔진이 함수 이름과 동일한 이름의 식별자를 암묵적 생성 함수는 함수 객체를 가리키는 식별자로 호출 표현식이 아닌 선언문 선언문을 실행하면 undefined가 출력 됨 자바스크립트 엔진이 문맥에 따라 함수 리터럴 표현식으로 해석 함수 선언문이라도 표현식으로 평가되어야 하는 문맥이..
12장 - 함수(1) 본 내용은 모던 자바스크립트 Deep Dive - 자바스크립트의 기본 개념과 동작 원리를 토대로 작성하였습니다. 12.1 함수란? 수학적 개념의 입력을 출력으로 내보내는 일련의 과정과 어느정도 비슷 자바스크립트의 함수는 출력(반환값)이 없을 수도 있음 프로그래밍에서의 일련의 과정이란, 문으로 구현 됨 코드 블록 매개 변수: 내부로 입력 받는 변수 인수: 내부로 입력 하는 변수 반환값: 출력 함수는 함수 정의로 생성 함수 선언문 함수 표현식 함수 생성자 함수 호출: 함수의 실행을 명시적으로 지시하는 것 // 함수 정의 // name: 매개 변수 function callMyPet(name) { const message = `이리오려무나 ${name}!` // message: 출력(반환값) return mes..