JavaScript의 전역 변수와 함수 매개변수

숫자를 매개변수로 받는 함수가 있다고 가정해 보겠습니다:

javascriptfunction func(localNum) {
  console.log(localNum);
}

함수 외부에 num 변수가 있다고 가정해 보겠습니다:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1; // 외부 전역 변수

num 변수를 매개변수로 전달하여 함수를 호출해 보겠습니다:

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num); // 매개변수를 사용하여 함수 호출, 1을 출력

결과적으로 함수 내부에서는 localNum 변수(함수 매개변수)와 num 변수(외부 변수) 모두 접근 가능합니다:

javascriptfunction func(localNum) {
  console.log(num); // 1을 출력
  console.log(localNum); // 1을 출력
}

let num = 1;
func(num);

localNum 변수 자체는 함수의 지역 변수이므로 외부에서 접근할 수 없습니다:

javascriptfunction func(localNum) {
  
}

let num = 1;
func(num); // 매개변수를 사용하여 함수 호출
console.log(localNum); // 오류 발생

localNum 변수가 지역 변수이므로, 그 값을 변경해도 외부에는 아무런 영향을 미치지 않습니다:

javascriptfunction func(localNum) {
  localNum = 2; // 외부에 아무런 변경도 하지 않음
}

let num = 1;
func(num);

반면 함수 내부에서 num(전역) 변수를 변경하면 변경 사항이 외부에도 나타납니다:

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num); // 2를 출력

그러나 함수 내부에서 let를 통해 num 변수를 선언하면, 외부 변수에 영향을 주지 않는 지역 변수 num를 생성하게 됩니다:

javascriptfunction func(localNum) {
  let num = 2; // let으로 선언
}

let num = 1;
func(num);
console.log(num); // 1을 출력 - 아무것도 변경되지 않음
Задание 1

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

javascriptfunction func(localNum) {
  console.log(localNum);
}

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

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

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
Задание 3

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

javascriptfunction func(localNum) {
  console.log(localNum);
}

let num = 1;
func(num);
num = 2;
Задание 4

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

javascriptlet num = 1;

function func(localNum) {
  console.log(localNum);
}

num = 2;
func(num);
Задание 5

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

javascriptfunction func(localNum) {
  localNum = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 6

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

javascriptfunction func(localNum) {
  num = 2;
}

let num = 1;
func(num);
console.log(num);
Задание 7

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

javascriptfunction func(localNum) {
  let num = 2;
}

let num = 1;
func(num);
console.log(num);