그동안 자바스크립트에 대해 얕게 공부를 해와서 이번 데브코스 교육과정을 들으면서
새로 알게되는 내용이 너무나 많았다.
그래서 그동안 내가 알게된 것과 다른 개념 + 새로 배우면서 인상깊었던 부분을 적었다.
스코프와 클로저
전에는 스코프를 그냥 유효범위라 생각하고 가볍게 넘겼는데,
변수 별로 스코프의 유효범위를 잘 파악하는게 중요하다는 것을 깨달았다.
특히, 클로저와 연관이 되는데 함수가 선언된 환경의 스코프를 기억하여
함수 밖에서 실행이 될때도 기억할 수 있다는 것이 신기했다.
싱글스레드
큐, 이벤트루프, 콜스택을 통해 자바스크립트의 동작원리에 대해 배우면서
비동기적으로 돌아가는 부분에 대해 더 잘 이해할 수 있었다.
함수가 실행되면 콜스택에 값을 넣어주지만,
setTimeout 이나 addEventListener 등 timer에 따로 보관해주고,
콜스택에 있는 함수가 모두 실행 된 후에,
이를 큐에넣고 콜스택으로 이동한다는 것을 배우고 난 후
setTimeouet 의 두번째 인자가 0초일 때도 왜 비동기로 일어나는지 이해할 수 있었다.
명령형 프로그래밍 & 선언형 프로그래밍
그동안 내가 명령형으로 코드를 작성하고 있다는 것을 깨달았다...
차례대로 실행과정을 작성하면 되어서 편하게 느껴졌던것같다.
하지만, 선언형 프로그래밍으로 작성하면 직관적으로 이해할 수 있고
로직을 변경할 때 더 자유롭다는 부분에서 자주 연습해야겠다는 생각을 들었다.