Jay's Cookbook
Menu
  • Tags
  • Categories
  • Projects
Computer Science
OS
Network
Data Structure
Algorithm
Language
Code Architecture
Python
Javascript
Typescript
Java
Backend
Backend Theory
TypeORM
Node.js
NestJS
FastAPI
Frontend
HTML/CSS
React
Next.js
Data Engineering
DE Theory
MySQL
MongoDB
Elastic
Redis
Kafka
Spark
Airflow
AI
Basic
Pytorch
NLP
Computer Vision
Data Analytics
Statistics
Pandas
Matplotlib
DevOps
Git
Docker
Kubernetes
AWS
[Javascript]: 지역 변수와 전역 변수
language
javascript

[Javascript]: 지역 변수와 전역 변수

Jay Kim
Jay Kim 24 Jan 2024
[Javascript]: 스코프 [Javascript]: var, let, const 키워드

Table of Contents

  • 전역 변수
    • 전역 변수의 문제점
    • 전역 변수 사용 억제하는 방법
  • 지역 변수

전역 변수

  • 전역 변수는 런타임 이전에 선언문이 실행되어 생성되고, 런타임에 할당문이 실행되어 값을 가지게 된다
  • 전역 변수는 전역 객체(브라우저에서는 window, 노드에서는 global)와 생명 주기가 같다
  • 그래서 window는 웹페이지를 닫기 전까지, global은 노드에서 프로세스를 종료하기 전까지 살아있기 때문에 전역 변수도 그 때 까지 살아서 메모리를 점유한다

전역 변수의 문제점

  • 긴 생명 주기: 생명주기가 길어서 메모리 리소스를 오랜 기간 점유한다
  • 스코프 체인 상에서 종점에 존재: 검색 속도가 가장 느리다

전역 변수 사용 억제하는 방법

  • 즉시 실행 함수
  • 모듈화

지역 변수

  • 지역 변수는 함수가 호출되어 함수 안의 코드가 실행될 때, 함수 안에서 정의된 변수들의 선언문이 실행되어 생성되고, 이 후 해당 할당문 위치에 왔을 때 실제로 값이 할당된다
  • 그래서 함수 안에서 정의된 지역 변수는 그 함수가 호출되지 않으면 함수 내부의 변수 선언문도 실행되지 않는다
  • (전역 변수는 함수 호출과 같은 진입점이 없어 바로 선언문이 실행되는 것과 대비되는 점이다)
  • 이처럼 호이스팅은 스코프를 단위로 동작한다
[Javascript]: 스코프 [Javascript]: var, let, const 키워드

You may also like

See all javascript
11 Feb 2024 [Javascript]: 자바스크립트 이벤트 루프와 콜 스택
language
javascript

[Javascript]: 자바스크립트 이벤트 루프와 콜 스택

10 Feb 2024 [Javascript]: 비동기 프로그래밍
language
javascript

[Javascript]: 비동기 프로그래밍

이웅모님의 모던 자바스크립트 Deep Dive 책을 읽고 정리한 내용이다

05 Feb 2024 [Javascript]: 타이머 함수
language
javascript

[Javascript]: 타이머 함수

이웅모님의 모던 자바스크립트 Deep Dive 책을 읽고 정리한 내용이다

Jay Kim

Jay Kim

Web development, data engineering for human for the Earth. I share posts, free resources and inspiration.

Rest
Lifestyle
Hobby
Hobby
Hobby
Hobby
2025 © Jay's Cookbook. Crafted & Designed by Artem Sheludko.