오늘은 스코프와 클로저의 설명을 들었고 전체적으로 복습하는 문제를 풀었다. 시작한다!
스코프에 대해 깨달은 것이 있다.
이 그림과 클로저를 연관시키는 것 인데,
클로저에서 상위 값을 가져오려면 맨 꼭대기 값이 아니라 바로 한칸 위의 상위 값을 가져온다는 것 이다.
오늘 클로저의 설명을 들으며 깨달은 것이 있다. 그림으로 설명하겠다.
여기서 클로저 부분은
이 부분을 클로저라고 할 수 있다. 함수안에 함수가 있으며 return값이 있기 때문이다. 이 문제는 정말 이해가 안된 문제였는데 깨달음을 얻은 나의 정리를 그림으로 표현하겠다
이 그림은 foo에 add(1)값을 넣어 할당하는 방법이다. 먼저 add(1)은 function(x)에 들어간다. 그 값을 let sum의 function(y)에 return 값 x에 들어간다. 결국 foo는 add에 있는 return 1 + y; 인 것이다.
그런 후 foo에 6값을 넣는다면 y에 6이 들어가서 sum은 7을 return 하게 된다.
let x; 하면 undefined
x = x + 20 = NaN이 된다
렉시컬 스코프 = 함수가 정의된 위치의 값을 참조한다
클로저란 외부함수의 실행이 끝났지만 내부함수를 함수 밖에서 실행해서 외부함수의 변수에 접근할 수 있는 형태의 함수(렉시컬 스코프를 이용한다.)
클로저가 되기 위해서는 항상 외부에서 내부함수를 return 해야한다
(); 함수를 닫은 후 ();가 있다면 그것은 즉시 실행 함수이다
오늘은 50개정도 되는 문제를 복습하는 겸 페어와 같이 풀었다. 페어와 수다를 떠들며 즐겁게 문제를 풀었고 테스트가 안돼어 이것을 해결 할 예정이다. 그리고 보이는 라디오를 들으며 다른사람들의 고민을 들었다. 나와 비슷한 고민을 가지고 있었고 가장 와닿은 이야기는 코드스테이츠의 커리큘럼을 의심하지 말고 따라만 온다면 최고가 될 수 있다는 말 이였다. 앞으로 코드스테이츠 수업을 더 열정적으로 해야겠다.