JavaScript에서의 동일 이름 매개변수

이제 외부 함수와 내부 함수가 동일한 이름의 매개변수를 가진 경우를 살펴보겠습니다:

javascriptfunction test(num) {
  function func(num) {
    console.log(num); // 1을 출력합니다
  }
  
  func(num);
};

test(1);

이 경우 내부 함수에는 로컬 변수 num가 존재합니다. 내부 함수에서 이 변수를 변경하는 것은 외부 변수 num에 어떠한 영향도 주지 않습니다:

javascriptfunction test(num) {
  function func(num) {
    num = 2; // 로컬 변수 num을 변경합니다
  }
  
  func(num);
  console.log(num); // 1을 출력합니다 - 아무것도 변경되지 않았습니다
}

test(1);

결과적으로 내부 함수는 외부 변수 num를 변경하기 위해 접근할 수 있는 방법이 없게 됩니다:

javascriptfunction test(num) {
  function func(num) {
    // 여기서는 외부 변수 num에 접근할 수 없습니다
  }
  
  func(num);
}
test(1);
Задание 1

코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  func(num);
}

test(1);
Задание 2

코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:

javascriptfunction test(num) {
  function func(num) {
    num = 2;
  }
  
  func(num);
  console.log(num);
}

test(1);
Задание 3

코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  num = 2;
  func(num);
}

test(1);
Задание 4

코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:

javascriptfunction test(num) {
  function func(num) {
    console.log(num);
  }
  
  func(num);
  num = 2;
}

test(1);