Chapter15 - let, const 키워드와 블록 레벨 스코프 15.1 var 키워드로 선언한 변수의 문제점 ES5까지 변수 선언의 유일한 방법은 var 키워드 이용 15.1 변수 중복 선언 허용 var x = 1; var y = 1; // var 키워드는 중복 선언 허용 // 초기화문이 있는 변수 선언문은 var 키워드가 없는 것처럼 동작 var x = 100; var y; console.log(x); // 100 console.log(y); // 1 15.1.2 함수 레벨 스코프 오직 코드 블록만 지역 스코프로 인정 특히 for문에서 중복 선언 조심 var i = 10; for (var i = 0; i < 5; i++) { console.log(i) // 0 1 2 3 4 } console.lo..
Chapter14 - 전역 변수의 문제점 14.1 변수의 생명 주기 14.1.1 지역변수의 생명 주기 지역 변수의 생명 주기는 함수의 생명 주기와 일치 var x = "global"; function foo() { console.log(x); // undefined var x = "local"; } foo(); console.log(x); // global 호이스팅은 스코프 단위로 동작 14.1.2 전역 변수의 생명 주기 전역 코드에는 반환문을 사용할 수 없으므로 마지막 문이 실행되어 더 이상 실행할 문이 없을 때 종료 var 키워드로 선언한 전역 변수의 생명 주기는 전역 객체의 생명 주기와 일치 14.2 전역 변수의 문제점 암묵적 결합 긴 생명 주기 메모리 리소스 오래 소비 스코프 체인 상에서 종점에 ..
Chapter13 - 스코프 13.1 스코프란? 모든 식별자는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위 결정 즉, 식별자가 유효한 범위 식별자 결정 시 사용하는 규칙으로 할 수 있음 var x = 'global'; function foo() { // foo 함수 내부에서만 참조 가능 var x = 'local'; console.log(x); // local } foo(); console.log(x); // global var 키워드로 선언한 변수는 중복 선언 허용 -> 재할당으로 인한 부작용 발생 가능성이 있음 let, const 키워드 변수는 중복 선언 허용하지 않음 13.2 스코프의 종류 구분 설명 스코프 변수 전역 코드의 가장 바깥 ..
Chapter12 - 함수 12.1 함수란? 일련의 과정을 문(statement)로 구현하고 코드 블록으로 감싸 하나의 실행 단위로 정의한 것 매개변수(parameter): 함수 내부로 입력을 전달받는 변수 인수(argument): 입력, 반환값(return value): 출력 함수는 함수 정의(function definition)을 통해 생성 생성 후 함수 호출(function call/invoke)을 통해 반환 12.2 함수를 사용하는 이유 필요할 떄 여러번 호출할 수 있음 -> 재사용 가능이란 측면에서 매우 유리 같은 코드가 여러번 중복될 경우 함수화하여 유지보수 편의성을 높이고 코드의 신뢰성을 높임 함수는 객체 타입의 값으로 이름을 붙일 수 있어 코드의 가독성이 좋아짐 12.3 함수 리터럴 함수 ..