[Section1] 스코프

정호·2023년 3월 2일
0

코드스테이츠

목록 보기
14/49

스코프

모든 식별자(변수, 함수, 클래스 일므 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효범위가 결정되고 이를 스코프라고 한다. 즉 스코프는 식별자가 유효한 범위

var x = 'global';

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

foo();

console.log(x);
  • 바깥 영역에서 선언된 x변수는 어디서든 참조할 수 있다.
  • foo함수 내부의 x sms 래ㅐ 함수 내부에서만 참조할 수 있다.
    이름을 동일하지만 스코프가 다른 별개의 변수이다.

var, let, const

var키워드로 선언된 변수는 같은 스코프 내에 중복 선언이 허용된다. 이는 의도치 않게 변수가 재할당되는 부작용을 일으키기도 한다.
var

function foo(){
  var x= 1;
  var x= 2;
  console.log(x);	//2
}
foo();

let, const키워드로 선언된 변수는 같은 스코프 내에서 중복 허용 x
let, const

function foo(){
  let x = 1;
  let x = 2; //SyntaxError
}
foo();

let은 for문 나가면 끝이고 var은 블록스코프 무시


지역스코프: 지역이란 함수 몸체 내부를 뜻하며 지역 변수는 자신이 선언된 지역과 하위지역(중첩함수)에서만 참조할 수 있다.

전역스코프: 지역스코프 바깥쪽을 뜻하며 안쪽 스코프의 내용을 참조할 수 있다.

지역변수는 전역변수보다 높은 우선순위를가짐

window 객체

  • 브라우저에 window라는 객체가 존재
    - 브라우저 창을 대표하는 객체
    - 브라우 창과 관계없이 전역 항목도 담고 있음
    함수 선언식으로 함수를 선언하거나, var로 전역 변수를 만들면, window 객체에서도 동일하 ㄴ값을 찾을 수 있음
profile
열심히 기록할 예정🙃

0개의 댓글