IdoCleanCode
article thumbnail
Published 2024. 9. 23. 11:47
[JavaScript] 스코프 Tutorials/JavaScript
반응형

스코프(scope)는 변수가 어디에서 접근 가능한지를 결정하는 규칙입니다.

 

전역 스코프

  • 전역 변수는 코드 어디에서나 접근할 수 있는 변수입니다.
  • 함수 밖에서 선언된 변수는 전역 변수로 간주됩니다.
  • 전역 스코프에서 선언된 변수는 스크립트 전체에 걸쳐 사용될 수 있습니다.
var globalVar = "I am global"; // 전역 변수

function displayVar() {
  console.log(globalVar); // 함수 내에서도 전역 변수를 접근할 수 있음
}

displayVar(); // 출력: I am global

 

지역 스코프

  • 지역 변수는 특정 블록, 함수 또는 구문 내에서만 접근 가능한 변수입니다.
  • 함수 내부에서 선언된 변수는 함수 스코프에만 존재합니다.
function localScopeExample() {
  var localVar = "I am local"; // 지역 변수
  console.log(localVar); // 함수 내부에서는 접근 가능
}

localScopeExample();
console.log(localVar); // 오류 발생: localVar는 함수 외부에서는 접근 불가

 

블록 스코프

  • let과 const로 선언된 변수는 블록 스코프를 가집니다.
  • 블록 {} 내에서만 유효하며, 해당 블록 밖에서는 접근할 수 없습니다.
if (true) {
  let blockVar = "I am block-scoped"; // 블록 스코프
  console.log(blockVar); // 출력: I am block-scoped
}

console.log(blockVar); // 오류 발생: blockVar는 블록 외부에서 접근 불가

 

함수 스코프

  • var 키워드로 선언된 변수는 함수 스코프를 가집니다. 함수 내부에서 선언된 변수는 해당 함수안에서만 유효합니다.
  • var는 블록 스코프를 따르지 않고 함수 스코프를 따릅니다.
function functionScopeExample() {
  var functionScopedVar = "I am function scoped";
  if (true) {
    var anotherVar = "Still in function scope";
  }
  console.log(anotherVar); // 출력: Still in function scope
}

functionScopeExample();
console.log(anotherVar); // 오류 발생: anotherVar는 함수 외부에서 접근 불가

 

렉시컬 스코프

  • 자바스크립트는 렉시컬 스코프를 사용합니다. 함수가 선언된 위치에 따라 스코프가 결정되고, 중첩 함수는 자신이 선언된 스코프 외부에 있는 변수에 접근할 수 있습니다.
function outer() {
  var outerVar = "I am outer";
  
  function inner() {
    console.log(outerVar); // 외부 스코프에 접근 가능
  }
  
  inner();
}

outer(); // 출력: I am outer

 

https://idocleancode.tistory.com/424

 

[자바스크립트] 학습 로드맵

자바스크립트 소개자바스크립트란?자바스크립트 역사자바스크립트 실행 방법자바스크립트 변수변수의 선언호이스팅참고 자료https://roadmap.sh/javascript JavaScript Developer Roadmap: Step by step guide to lea

idocleancode.tistory.com

 

관련자료

반응형

'Tutorials > JavaScript' 카테고리의 다른 글

[JavaScript] Number  (0) 2024.10.06
[JavaScript] string  (2) 2024.10.02
[JavaScript] 변수 네이밍 규칙  (1) 2024.09.23
[JavaScript] 호이스팅  (2) 2024.09.15
[JavaScript] 변수의 선언  (2) 2024.09.07
profile

IdoCleanCode

@IdoCleanCode

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!