JavaScript, TS
전역 변수와 지역 변수 그리고 scope
개발하는지호
2023. 11. 27. 01:24
let result = 0;
function add(a, b) { //a, b 선언
console.log(a,b);
//함수 내부에서 자신의 스코프에 위치한 변수를 참조할 수 있음
//역으로 안 되는데 그 이유는 function 은 사용하고 사라지기 때문이다.
console.log(result);
}
add(2, 3);
내부에서는 내부의 값이 없다면 외부에서 값을 참조한다. 하지만, 외부에 있는 변수는 내부에 있는 것을 참조하지 못한다. function 같은 것을 보면 이용되고 사라지기 때문이다.
내부에서의 값을 찾지 못하면 외부에서 가져오고 외부에서 값이 없다면 또 그 외부에서 데이터를 가져온다.
밑의 코드는 이 말에 대한 이해를 돕기 위해 작성한 코드이다.
// 전역 스코프
// -> 디버거로 실행해보기
var x = '전역변수 x';
var y = '전역변수 y';
function outer() {
var z = 'outer() 내 지역변수 z';
console.log(x);
console.log(y);
console.log(z);
function inner() {
var x = 'inner() 내 지역변수 x';
console.log(x);
console.log(y);
console.log(z);
}
inner();
}
outer();
console.log(x);
console.log(z);
// 전역 스코프
// -> 디버거로 실행해보기
var x = '전역변수 x';
var y = '전역변수 y';
function outer() {
var z = 'outer() 내 지역변수 z';
console.log(x);
console.log(y);
console.log(z);
function inner() {
var x = 'inner() 내 지역변수 x';
console.log(x);
console.log(y);
console.log(z);
}
inner();
}
outer();
console.log(x);
console.log(z);