오랜 기간 하던 함수 장을 끝냈다.
마지막 부분에는 순수 함수 등등의 내용이 있었는데, 이 부분은 예전에 Kotlin을 공부하면서 많이 봤던 내용이라 익숙했다.
그 다음 장은 스코프(scope)에 대한 내용이었다.
가장 기억에 남는 부분은 자바스크립트의 var 변수는 함수 레벨 스코프를 갖는다는 것이었다.
이 부분을 보고 블록 레벨 스코프(block level scope), 함수 레벨 스코프(function level scope)가 무엇인지 처음으로 정확하게 알게 되었다.
공부를 하거나 일을 할 때 간혹 보던 말이었는데, 그 뜻을 정확하게 알게 된 것 같아서 좋았다.
한 가지 더 기억할 만한 부분은 렉시컬 스코프(lexical scope, 또는 정적 스코프(static scope)), 동적 스코프(dynamic scope)이다.
대부분의 프로그래밍 언어처럼 자바스크립트 역시 렉시컬 스코프를 채택하고 있어서 함수가 선언된 위치에 따라 상위 스코프가 달라지고, 그에 따라서 함수 내부에서 변수나 함수의 결과도 달라진다는 걸 알게 되었다.
이건 몰랐던 부분이었는데, 알고 나니 신기했다.