JavaScript_Study [ Scope (스코프) ]

이준석·2023년 4월 4일
0

JavaScript_Study

목록 보기
10/35
post-thumbnail

2021-09-15 노션페이지
기록된 노션을 다시 정리

기억할 것 : 선언된 곳이 기준!!

Scope란

참조 대상 식별자(identifier, 변수, 함수의 이름과 같이 어떤 대상을 다른 대상과 구분하여 식별할 수 있는 유일한 이름)를 찾아내기 위한 규칙이다.

전역스코프

전역에 변수를 선언하면 이 변수는 어디서든지 참조할 수 있는 전역 스코프를 갖는 전역 변수가 된다. var 키워드로 선언한 전역 변수는 전역 객체(Global Object) window의 프로퍼티이다.

지역 스코프의 특징

  • 블록 레벨 스코프(block-level scope): {} 코드블럭에서만 유효
    • const, let
  • 함수 레벨 스코프(function-level scope) : 함수에서만 유효
    - var
    // 해당 if문이 전역에서 사용됐을 경우 전역 변수가 된다.
    // var을 함수로만 감싸줬을 때 유효하다.
    if (true) {
    var x = 5;
    }
    console.log(x);

함수 내에 존재하는 함수인 내부 함수 (스코프 체인)

  • (중첩 스코프는 가장 인접한 지역을 우선하여 참조한다.)
var x = 'global';

function foo() {
  var x = 'local';
  console.log(x); // local

  function bar() {  // 내부함수
    console.log(x); // local  
  }

  bar();
}
foo();
console.log(x); //global

렉시컬스코프

  • 렉시컬 스코프는 함수를 어디서 호출하는지가 아니라 어디에 선언하였는지에 따라 결정된다.
    => 반대의 경우 this가 있다.

참조: poiemaweb.com

0개의 댓글