SeSac (2021-08 ~ 2021-12)/JS

13~17 deep dive

배워도끝이없네 2021. 8. 31. 22:20

 

스코프는 유효범위

 

렉시컬스코프라는건 알아야 한다

 

펑셔널랭기지는 렉시컬스코프를 대부분 이용한다.

 

렉시컬스코프는 선언된곳에서 자기의 스코프를 갖는다 (실행x)

 

var는 해당 함수위로 호이스팅되어 참조가된다.

 

for문에 var가 들어가면 주의해야한다.

 

전역변수는 오해의 소지가 많기 때문에 전역변수는 반드시 풀네임으로 써주자!

 

전역객체가 es11부터 globalthis로 통합되었다.

 

자바스크립트는 모듈스코프라는게 별도로 존재한다. 모듀스코프는 모듈 내에서만 할 수 있는 스코프

 

자바스크립트가 실행되면 기본적인 빌트인함수들이 올라가는곳을 실행컨텍스트라고 한다.

 

실행 컨텍스트 안에는 오브젝트...윈도우..글로벌... 등이 있다

 

var는 윈도우의 객체로 잡힌다

 

let는 별도의 공간에 잡힌다

 

declarotive enviroment recode (선언적 환경 레코드) 에 잡힌다.

 

변수를 찾을때는 선언적 환경 레코드를 먼저 보고 윈도우객체를 먼저 본다.

 

16장 내부슬롯과 내부 메서드

 

for in -> index를 반환

for of -> value를 반환

 

리액트에서 [name, setName] = useState('');

setName을 하는 순간 Object.defineProperty... 생략...

 

setName을 쓰면 내부적으로 this.name후에 rerender();함수를 실행시킨다.

 

spec문서에서 target은 전달하는 매개변수이다.

 

객체를 생성하는 방법은 객체 리터럴을 이용한 방법과 생성자함수를 이용한 방법이 있다.

 

평가단계에서 new로 생성한 객체의 this는 미리 메모리를 확보하도록 약속이 되어있다 (instance를 가르킨다)

 

1.메모리확모하고 주소를 this에게 준다.

2. 인스턴스 초기화

3. 인스턴스 반환

'SeSac (2021-08 ~ 2021-12) > JS' 카테고리의 다른 글

Observer Pattern  (0) 2021.09.07
숫자야구 리뷰  (0) 2021.09.02
자바스크립트의 역사  (0) 2021.08.28
ch12 deep dive 함수  (0) 2021.08.26
ch10~11 deep dive  (0) 2021.08.24