JavaScript 함수에서 동일한 변수명

함수 외부와 내부에 모두 num이라는 변수가 있다고 가정해 봅시다. 이 경우 지역 변수 num에 대한 어떠한 변경도 전역 변수 num에 영향을 주지 않습니다:

javascriptlet num = 1; // 전역 변수

function func() {
  let num = 2; // 지역 변수
  console.log(num);
}
func(); // 함수 호출, 2 출력

console.log(num); // 1 출력 - 전역 변수는 변경되지 않음

그러나 지역 변수 num을 선언할 때 let을 깜빡한다면, 함수 내부에 새로운 지역 변수 num가 생성되지 않고 단순히 전역 변수가 수정됩니다:

javascriptlet num = 1;

function func() {
  num = 2; // let 작성 깜빡함 - 외부 변수 수정
  console.log(num);
}
func(); // 함수 호출, 2 출력

console.log(num); // 2 출력 - 변수가 변경됨

여기에는 두 가지 상황이 있을 수 있습니다: 우리가 실제로 전역 변수를 변경하려고 했거나(그렇다면 괜찮음), let을 깜빡하고 실수로 전역 변수를 변경한 경우입니다.

두 번째 경우는 스크립트의 예측 불가능한 동작으로 이어지는 발견하기 어려운 오류입니다. 따라서 새로운 변수를 도입할 때는 항상 let을 사용하여 선언하세요.

Задание 1

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

javascriptlet num = 1;

function func() {
  num = 2;
}
func();

console.log(num);
Задание 2

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

javascriptlet num = 1;

function func() {
  let num = 2;
}
func();

console.log(num);