티스토리 뷰

JavaScript

스코프

미짱~ 2023. 1. 1. 17:15

스코프

-식별자가 유효한 범위 .

=> 모든 식별자(변수 이름, 함수 이름, 클래스 이름등)는 자신이 선언된 위치에 의한 다른 코드가 식별자 자신을 참조할 수 있는 유효범위

-식별자는 어떤 값을 구별할수 있어야 하므로 유일해야한다(식별자인 변수 이름은 중복 불가)  

=> 스코프를 통해 식별자인 변수 이름의 충돌 방지하여 같은 이름의 변수를 사용 가능하게 함 

     =>즉, 네임스페이스: 스코프 내에서 식별자는 유일해야 하지만 다른 스코프에는 같은 이름의 식별자를 사용할 수 있다 

function add(x, y) {
  //매개변수는 함수 몸체 내부에만 참조가능
  //매개변수의 스코프 유효범위는 함수 몸체 내부
  console.log(x, y);

  return x + y; 
}

add(2, 3)

console.log(x, y);
//스코프 유효범위는 함수 몸체 내부이므로
//ReferenceError: x is not defined

 

식별자 결정

자바스크립트 엔진은 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지 결정 

var x = 'global';

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

foo();
// local


console.log(x);
//global

// 식별자인 변수 이름은 같지만 스코프가 다른 별개의 변수이다

즉 스코프란 자바스크립트 엔진이 식별자를 검색할때 사용하는 규칙 

 

 

오늘 배우면서

 

key point 

 

스코프는 식별자의 유효범위

식별자는  유일해야하지만, 다른 스코프 내에서는 같은 이름의 변수를 사용할수 있다. (네임 스페이스)

'JavaScript' 카테고리의 다른 글

스코프 체인  (0) 2023.01.02
스코프의 종류  (0) 2023.01.01
식별자 네이밍 규칙  (0) 2023.01.01
값의 할당  (0) 2023.01.01
변수 선언  (0) 2023.01.01
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/12   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
글 보관함