TDZ(Temporal Dead Zone)는 변수가 선언되기 전에 접근하려 할 때 발생하는 일시적인 상태를 의미
let과 const 키워드로 선언된 변수는 호이스팅 되지만, 초기화되기 전까지는 접근할 수 없음
변수에 접근하려고 하면 TDZ에 놓이기 때문에 ReferenceError가 발생
TDZ 특징
console.log(x);//ReferenceError: Cannot access 'x' before initialization
let x = 10;
위 코드에서는 let x = 10
이전에 console.log(x)
가 실행되고 있습니다. 이는 TDZ 때문입니다. let
변수는 호이스트되지만, 초기화되기 전까지는 접근할 수 없습니다. 따라서 위 코드는 에러가 발생합니다.
파라미터(parameter)와 아규먼트(argument) 개념은 함수(function)를 정의하고 호출할 때 사용됩니다.
파라미터는 함수가 선언될 때 괄호 내에 나열된 변수들을 의미합니다.
예를 들어, 다음 함수에서 a
와 b
는 파라미터입니다.
function addNumbers(a, b) {
return a + b;
아규먼트는 함수가 호출될 때 전달되는 값들을 의미합니다. 예를 들어, 다음 함수 호출에서 2
와 3
은 아규먼트입니다.
const result = addNumbers(2, 3);
파라미터와 아규먼트는 다음과 같은 세부사항에서 차이가 있습니다.