TIL_230328_기술 면접 스터디 - Hoisting, TDZ, parameter와 argument의 차이

정윤숙·2023년 3월 28일
0

TIL

목록 보기
140/192
post-thumbnail

📒 오늘의 공부

1. 기술 질문 스터디

1. Hoisting 이란? TDZ란?

  • Hoisting

    • 변수나 함수 선언을 해당 스코프의 최상단으로 끌어올리는 동작
    • 변수 선언 부분만 hoisting
    • let은 참조 에러 발생
  • var, let, const

    • 변수의 생성과정
    1. 선언 단계
    2. 초기화 단계
    • undefined를 할당 해주는 단계
    1. 할당 단계
    • var: 1. 선언 및 초기화 2. 할당

    • let: 1. 선언 2. 초기화 3. 할당

    • const: 1. 선언 + 초기화 + 할당

  • TDZ(Temporal Dead Zone): 일시적 사각지대

    • 스코프의 시작 지점부터 초기화 시작 지점까지 변수를 참조할 수 없는 구간
    • 할당 하기 전에는 사용 불가
  • 함수 스코프(function-scoped)

    • var
    • 함수 내에서 선언한 변수만 지역 변수
    • 함수가 아닌 경우 -> 전역 변수
  • 블록 스코프(block-scoped)

    • let, const
    • 해당 코드 블록 내에서만 유효, 외부에서 접근 불가(지역 변수)
    • 해당 코드 블록: 함수, if문, for문, while문 등


추가공부

  • let, const도 실제로는 Hoisting이 된다.

    • hoisting이 발생하지 않는 것처럼 보일 뿐
  • var, let, const

    • 변수 선언은 기본적으로 const 사용
    • 재할당이 필요한 경우에만 let 사용

2. parameter와 argument의 차이에 대해 설명해주세요.

  • parameter(매개변수): 함수 정의에서 선언한 값
    • 함수 내부에서 지역 변수로 취급
    • 함수를 호출할 때 전달한 인자(argument)에 따라 동적으로 결정
  • argument(인수): 함수를 호출할 때, 함수에 전달하는 값

참고자료

Youtube 변수, 호이스팅, TDZ
모던 자바스크립트 Deep Dive

profile
프론트엔드 개발자

0개의 댓글