JavaScript의 전역 변수와 함수 매개변수
숫자를 매개변수로 받는 함수가 있다고 가정해 보겠습니다:
function func(localNum) {
console.log(localNum);
}
함수 외부에 num 변수가 있다고 가정해 보겠습니다:
function func(localNum) {
console.log(localNum);
}
let num = 1; // 외부 전역 변수
num 변수를 매개변수로 전달하여 함수를 호출해 보겠습니다:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num); // 매개변수를 사용하여 함수 호출, 1을 출력
결과적으로 함수 내부에서는 localNum 변수(함수 매개변수)와
num 변수(외부 변수) 모두 접근 가능합니다:
function func(localNum) {
console.log(num); // 1을 출력
console.log(localNum); // 1을 출력
}
let num = 1;
func(num);
localNum 변수 자체는 함수의 지역 변수이므로 외부에서 접근할 수 없습니다:
function func(localNum) {
}
let num = 1;
func(num); // 매개변수를 사용하여 함수 호출
console.log(localNum); // 오류 발생
localNum 변수가 지역 변수이므로, 그 값을 변경해도 외부에는 아무런 영향을 미치지 않습니다:
function func(localNum) {
localNum = 2; // 외부에 아무런 변경도 하지 않음
}
let num = 1;
func(num);
반면 함수 내부에서 num(전역) 변수를 변경하면 변경 사항이 외부에도 나타납니다:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num); // 2를 출력
그러나 함수 내부에서 let를 통해 num 변수를 선언하면,
외부 변수에 영향을 주지 않는 지역 변수 num를 생성하게 됩니다:
function func(localNum) {
let num = 2; // let으로 선언
}
let num = 1;
func(num);
console.log(num); // 1을 출력 - 아무것도 변경되지 않음
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
console.log(localNum);
}
func(1);
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
console.log(localNum);
}
let num = 1;
func(num);
num = 2;
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
let num = 1;
function func(localNum) {
console.log(localNum);
}
num = 2;
func(num);
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
localNum = 2;
}
let num = 1;
func(num);
console.log(num);
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
num = 2;
}
let num = 1;
func(num);
console.log(num);
코드를 실행하지 않고 콘솔에 무엇이 출력될지 결정하세요:
function func(localNum) {
let num = 2;
}
let num = 1;
func(num);
console.log(num);