본문 바로가기

JavaScript

JavaScript 스코프(scope)

반응형

JavaScript에서 스코프(scope)는 변수가 어디서 접근 가능한지를 정의합니다. JavaScript에는 주로 두 가지 유형의 스코프가 있습니다: 전역 스코프(global scope)와 지역 스코프(local scope).

1. 전역 스코프(Global Scope):

전역 스코프에 선언된 변수는 코드의 어디에서나 접근 가능합니다.

var globalVar = "I'm global!";

function testScope() {
console.log(globalVar); // 출력: "I'm global!"
}

testScope();
console.log(globalVar); // 출력: "I'm global!"

2. 지역 스코프(Local Scope):

지역 스코프는 특정 코드 블록(예: 함수) 내에서만 변수에 접근할 수 있게 합니다.

function testScope() {
var localVar = "I'm local!";
console.log(localVar); // 출력: "I'm local!"
}

testScope();
console.log(localVar); // ReferenceError: localVar is not defined

블록 스코프(Block Scope):

let과 const 키워드를 사용하여 선언된 변수는 블록 스코프를 가집니다. 이는 해당 변수가 선언된 블록(중괄호 {}로 둘러싸인 영역) 내에서만 접근 가능하다는 것을 의미합니다.

if (true) {
let blockVar = "I'm in a block!";
console.log(blockVar); // 출력: "I'm in a block!"
}

console.log(blockVar); // ReferenceError: blockVar is not defined

클로저(Closure):

클로저는 내부 함수가 외부 함수의 변수에 접근할 수 있는 JavaScript의 특성입니다. 이로 인해 내부 함수는 외부 함수의 실행이 끝난 후에도 해당 변수에 접근할 수 있습니다.

function outer() {
var outerVar = "I'm in outer function!";

function inner() {
console.log(outerVar); // 출력: "I'm in outer function!"
}

return inner;
}

var innerFunc = outer();
innerFunc(); // 출력: "I'm in outer function!"

요약:

전역 변수: 어디에서나 접근 가능
지역 변수: 선언된 함수 또는 블록 내에서만 접근 가능
클로저: 내부 함수가 외부 함수의 변수를 "기억"

반응형

'JavaScript' 카테고리의 다른 글

JavaScript use strict(strict mode)  (0) 2023.08.23
JavaScript 호이스팅(hoisting)  (0) 2023.08.23
JavaScript 오류 처리  (0) 2023.08.23
JavaScript 정규 표현식  (0) 2023.08.22
JavaScript 유형 변환 이해하기  (0) 2023.08.22