본문 바로가기
패스트캠퍼스/자습

poiemaweb 14~15강 복습

by sunnykim91 2019. 9. 20.

let, const와 블록 레벨 스코프

 

var 키워드로 선언한 변수의 문제점

1) 변수 중복 선언 허용

2) 함수 레벨 스코프. 전역 변수를 남발할 가능성을 높인다. 블록레벨 스코프를 지원하지 않는다.

3) 변수 호이스팅 : 변수 선언문이 스코프의 선두로 끌어 올려진 것처럼 동작

 

let 키워드

 

변수 중복 선언 금지

블록 레벨 스코프 지원

변수 호이스팅이 발생하지 않는다.

 

var 키워드로 선언한 변수는 런타임 이전에 자바스크립트 엔진에 의해 암묵적으로 선언, 초기화 단계가 한번에 진행

즉, 선언단계에서 실행컨텍스트의 렉시컬 환경에 변수 식별자를 등록하여 자스 엔진에 변수의 존잴르 알린다.

초기화 단계에서 undefined로 변수를 초기화 한다.

 

반면, let 키워드는

 

선언 단계 초기화 단계가 분리되어 진행된다.

 

스코프의 시작지점부터 초기화 시작 지점까지의 구간을 일시적 사각지대 라고 부른다.

 

 

const키워드

 

변하지 않는 고정된 값을 선언하기 위해 사용. 

재할당이 금지된다.

const 는 선언과 동시에 할당이 이루어져야 한다.

 

 

프로퍼티의 정의

 

프로퍼티 어트리뷰의 값을 정의하여 프로퍼티의 상태를 관리 하는 것.

 

자바스크립트 엔진은 프로퍼티를 생성(객체 리터럴의 평가, 프로퍼티 동적 생성)할때, 프로퍼티의 상태를 나타내느 프로퍼티 어트리뷰트를 기본값으로 자동 정의한다.

 

내부 슬롯/ 메소드

 

객체와 관련된 내부상태와 내부동작을 정의 한것

 

프로퍼티는

데이터 프로퍼티와 접근자 프로퍼티로 나뉜다.

 

데이터 프로퍼티 : 키와 값으로 구성된 일반적인 프로퍼티

접근자 프로퍼티 : 자체적으로 값을 갖지 않고 다른 데이터 프로퍼티의 값을 읽거나 저장할 때 사용하는 접근자 함수로 구성된 프로퍼티

 

***접근자 함수 : getter/setter 함수라고도 부른다.

 

일반 객체의 __proto__는 접근자 프로퍼티이다.

함수 객체의 prototype은 데이터 프로퍼티이다.

 

 

반응형

'패스트캠퍼스 > 자습' 카테고리의 다른 글

poiemaweb 16~17강 복습  (0) 2019.09.23
리액트 36~40강 정리  (0) 2019.09.22
리액트 31~35강 정리  (0) 2019.09.19
리액트 26~30강 정리  (0) 2019.09.18
리액트 21~25강 정리  (0) 2019.09.15