본문 바로가기
반응형

개발서적/모던 자바스크립트 Deep Dive28

let, const 키워드와 블록 레벨 스코프 (모던 자바스크립트 Deep Dive) 15.1 var 키워드로 선언한 변수의 문제점 15.1.1 변수 중복 선언 허용 var 키워드를 사용하면 중복 선언이 가능하다! 단, 초기화를 위한 할당을 하지 않으면 적용되지 않는다. 15.1.2 함수 레벨 스코프 함수의 코드 블록만 지역 스코프로 인정한다. if, for 등 함수가 아닌 스코프는 스코프로 인정하지 않는다. 15.1.3 변수 호이스팅 할당을 하기 전까지는 undifined로 초기화되고, 할당 후 값이 적용된다. var 을 이용해 아래에 선언해 놓아도 호이스팅을 통해 에러가 나지 않는다. 15.2 let 키워드 15.2.1 변수 중복 선언 금지 이미 선언된 변수를 중복 선언시 에러가 발생한다. 15.2.2 블록 레벨 스코프 모든 코드 블록을 스코프로 인정한다. 지역 변수의 범위가 var .. 2024. 4. 16.
전역 변수의 문제점 (모던 자바스크립트 Deep Dive) 14.1 변수의 생명 주기 14.1.1 지역 변수의 생명 주기 변수에도 생명 주기가 있다. 없으면 메모리 공간을 계속 점유한다. 함수 내부에서 선언된 지역 변수는 함수가 호출되면 생성되고 함수가 종료하면 소멸한다. 지역 변수의 생명 주기는 함수의 생명 주기와 일치한다. (스코프 내부에서만 사용 가능) 지역 변수가 함수보다 오래 생존하는 경우도 있다. 누군가가 해당 메모리 공간을 참조하고 있으면 메모리 공간이 해제되지 않는다. 스코프 또한 다른 곳에서 참조 중이면 소멸하지 않는다. var x = 'global'; function foo() { // 함수가 실행되며 x가 undifined로 초기화됨 console.log(x); // undifined var x = 'local'; } foo(); consol.. 2024. 4. 16.
스코프 (모던 자바스크립트 Deep Dive) 스코프란? 모든 프로그래밍 언어에서 중요한 개념이다. var과 let, const로 선언한 스코프는 다르게 동작한다. 함수의 매개변수는 함수 내부에서만 참조 가능하며 외부에서는 참조할 수 없다. 매개변수의 스코프는 함수 내부이기 때문이다. 스코프는 식별자가 유효한 범위이다. var x = 'global'; function foo() { var x = 'local'; console.log(x); // local } foo(); console.log(x); // global 함수 외부와 내부에서 같은 이름으로 선언된 변수가 있지만 참조할 때 자바스크립트 엔진은 두 개의 변수 중 어떤 변수를 참조해야할지 결정한다. 이는 스코프에 따라 정해진다. 스코프 개념이 없다면 같은 이름을 갖는 변수는 프로그램 내에서 충.. 2024. 4. 16.
함수 (모던 자바스크립트 Deep Dive) 12.1 함수란? 입력을 받아 출력을 내보내는 일련의 과정 // 함수 정의 function add(x, y) { // x, y :매개변수 return x + y; // 반환값 }; // 함수 호출 add(2, 5); // 2, 5: 인수 12.2 함수를 사용하는 이유 코드 재사용 가능 ! 내부 코드를 보지 않고도 식별자를 보고 함수의 역할을 파악할 수 있게 해야한다. 12.3 함수 리터럴 함수는 객체다. 그러나 일반 객체는 호출할 수 없지만 함수는 호출이 가능하다. 함수 이름은 생략할 수 있다. 기명 함수와 익명 함수가 존재 익명 함수 : 이름이 없는 것이 아닌 함수 이름 대신 변수에 함수를 대입한 방식이다. let anonymousFunc = function() { console.log('this fu.. 2024. 4. 16.
728x90
반응형