Closure
[JS] Lexical Environment로 알아보는 Closure
[JS] Lexical Environment로 알아보는 Closure
2023.01.16쓰게 된 계기 모던 자바스크립트를 요즘 정리하면서 얘기하는 스터디를 하고 있습니다. 그런데 이 부분 내용을 따로 공유하면 좋을 것 같아서 분리하게 되었습니다. 변수의 유효범위와 클로저 변수의 유효범위와 클로저 ko.javascript.info 자바스크립트는 함수형 프로그래밍을 지원합니다. 함수가 일급 객체이기 때문에 고차함수는 익숙하게 볼 수 있습니다. let과 const를 사용하면 block scope으로 사용하게 됩니다. (자바스크립트에서도 이런 용어를 쓰는지 모르겠지만) 이렇게 눈으로 바로 블록에 쌓인 변수 범위를 lexical scope이라고 부릅니다. 외부 scope에서 내부 scope에 있는 변수를 사용하지 못하기 때문에 실수를 많이 줄여줍니다. 사실 이런 Lexical Scope과 이것을 활..
모던 JavaScript 튜토리얼 파트 1 :: 6장 "함수 심화학습" 정리
모던 JavaScript 튜토리얼 파트 1 :: 6장 "함수 심화학습" 정리
2023.01.16모던 JavaScript 튜토리얼 파트 1의 6장을 읽으면서 정리하는 글입니다. 1. 재귀와 스택 재귀와 스택 ko.javascript.info 자바스크립트는 재귀 함수의 깊이를 제한한다. (엔진에 따라 다르지만 만개 정도는 확실히 허용한다고 합니다.) function A(i) { i = i - 1; if (i < 0) return 0; return A(i); } const result = A(10_000); // 허용! const result = A(10_956); // 허용! const result = A(10_957); // Uncaught RangeError: Maximum call stack size exceeded 크롬에서 간단하게 검사툴로 돌려보니깐 10,956까지만 허용하네용. 꼬리 재귀 ..