브리프유 브리프유 로그인
자청의 유튜브 추출기

유튜브 영상의 자막과 AI요약을 추출해보세요

AI 채팅

BETA

자바스크립트 함수 스코프 뽀개기! 초보도 OK, 코딩 실력 UP 비밀 꿀팁!

게시일: 작성자: 자청의 유튜브 추출기

함수 특징 이해하기 (중학생 눈높이 설명)

1. 함수 안의 비밀, 밖에서는 못 봐!

  • 함수 안에서 만든 변수나 데이터는 함수 밖에서는 절대 볼 수 없어. 마치 너만의 비밀 일기장 같은 거지.
  • 예를 들어 sum이라는 함수 안에 result라는 변수를 만들어서 10이랑 20을 더했다고 해봐. 함수 안에서는 result가 30인 걸 알지만, 함수 밖에서 result를 보려고 하면 "그런 거 없어!"라는 에러가 떠.

2. 스코프: 변수들의 집 주소

  • 왜 함수 안의 변수를 밖에서 못 볼까? 바로 스코프라는 규칙 때문이야. 스코프는 변수나 함수를 어디서 찾아야 하는지 알려주는 규칙 같은 거야.
  • 자바스크립트에는 크게 두 가지 스코프가 있어.

    • 함수 스코프:

      • 함수 안의 {} (중괄호) 안은 지역 스코프라고 불러. 딱 그 함수 안에서만 통하는 곳이지.
      • 함수 밖은 전역 스코프라고 해. 어디서든 볼 수 있는 곳이야.
      • 핵심: 지역 스코프에서는 전역 스코프를 볼 수 있지만, 전역 스코프에서는 지역 스코프를 볼 수 없어.
    • 블록 스코프 (ES6부터 추가!):

      • let이나 const 키워드를 사용하면 {} (중괄호) 안이 또 다른 지역 스코프가 돼. 이걸 블록 스코프라고 해.
      • var 키워드는 블록 스코프를 만들지 못해. 그냥 함수 스코프만 따라가.
      • 핵심: let이나 const로 만든 변수는 블록 안에서만 통하고, 밖에서는 못 봐.

3. 함수도 "호이스팅" 한다!

  • 변수 배울 때 호이스팅이라고 들어봤지? 변수 선언을 코드 맨 위로 끌어올리는 거 말이야.
  • 함수도 똑같이 호이스팅이 돼! 함수 선언문으로 만든 함수는 코드 어디에서든 호출해도 오류가 안 나. 마치 함수가 코드 맨 위에 미리 선언되어 있는 것처럼 말이지.
  • 주의: 함수 표현식 (변수에 함수를 담는 방식)은 호이스팅이 안 돼! 이건 변수처럼 취급되기 때문에 undefined 상태에서 함수처럼 호출하려고 하면 오류가 나.

4. 딱 한 번만 실행! 즉시 실행 함수

  • 어떤 함수는 딱 한 번만 실행하고 더 이상 필요 없을 때가 있어. 그런데 그냥 함수로 만들고 호출하면, 그 함수 이름이 전역 스코프에 남아서 다른 곳에서 똑같은 이름으로 함수를 만들 때 방해가 될 수 있어. (전역 스코프 오염!)
  • 이럴 때 즉시 실행 함수를 사용해! 함수를 만들자마자 바로 실행하고 메모리에서 사라지게 하는 거지.
  • 함수를 ()로 감싸고 바로 ()를 붙여서 실행하면 돼. 이렇게 하면 전역 스코프를 깨끗하게 유지하면서 함수를 딱 한 번만 실행할 수 있어.

최근 검색 기록