인공지능 공부로 컴퓨터의 세계로 들어왔지만 현재 노드를 통해 백엔드 개발을 하고 있다.
아무것도 모르고 이렇게 만들면 되는거야 주먹구구 식으로 개발하기에는 한계가 있기에 nodejs 교과서를 통해서 기초를 쌓아보고자 시작했다.
정리하다가 새롭다거나 재미있는 것들 위주로 포스팅 해보려 한다.
기본적으로 실행 순서가 정해지는 방법으로 생각하면 좋을 것 같다.
아래 사진에서 first() 내에서 second()를, second() 내에서 third()를 실행하면 아래와 같이 실행 될 것이다.
그런데 내가 몰랐던 내용은 anonymous다. 파일이 실행되면 그냥 맨 아래 기본적으로 쌓여있는 실행 컨텍스트라고 설명해주는데 모르겠다..
역시 모르면 요즘에는 chat gpt다. 바로 질문했다.
JavaScript에서 파일은 모듈 또는 스크립트로 구분되며, 기본적으로 모든 js 호출 스택에는 맨 아래에 "anonymous" 컨텍스트가 있습니다. 이는 파일 내의 코드들이 전역 범위에서 실행되는 컨텍스트를 의미합니다.
JavaScript 파일이 실행되면 해당 파일 내의 코드들이 모듈 또는 스크립트로서 실행되는데, 이때 파일 내의 코드들은 하나의 큰 함수로 감싸지지 않습니다. 그래서 해당 코드들은 자바스크립트 엔진에 의해 기본적으로 "anonymous" 함수로 처리됩니다.
이렇게 파일 내의 코드들이 "anonymous" 함수로 처리되는 것은 변수와 함수들이 해당 파일의 범위를 벗어나지 않도록 하는데 도움이 됩니다. 즉, 파일 내에서 정의된 변수와 함수들은 기본적으로 파일 내부에서만 유효하게 되고, 다른 파일이나 스크립트에서는 접근할 수 없게 됩니다.
호출 스택은 코드들이 실행될 때 해당 컨텍스트들이 스택에 추가되고 제거되는 방식으로 동작하므로, 파일이 실행될 때 맨 아래에 "anonymous" 컨텍스트가 위치하게 됩니다. 그리고 이후에 함수 호출 등으로 인해 다른 컨텍스트들이 호출 스택에 추가되면서 "anonymous" 컨텍스트 위에 쌓이게 됩니다.
이러한 방식은 JavaScript에서 파일 단위로 범위(scope)를 제어하는데 유용하며, 모듈화와 변수 간의 충돌을 방지하는 데 도움이 됩니다.
->
없다.
좋은 정보 얻어갑니다, 감사합니다.