티스토리 뷰

반응형

스코프(Scope) - 유효범위 

 

- 참조 대상 식별자(identifier)를 찾아내기 위한 규칙이다. 

 

전역 스코프 코드 어디에서나 참조할 수 있다.
지역 스코프 함수 코드 블록이 만든 스코프로 함수 자신과 하위 함수에서만 참조할 수 있다.

 

var -  var 키워드로 선언된 전역 변수는 전역 객체의 프로퍼티가 된다.

 

let - let 키워드로 변수를 선언해주면 블록 레벨 스코프로 사용 가능하다.

 

cf) var은 같은 이름으로 중복 선언이 가능하지만 let은 값이 다르더라도 같은 이름의 변수를 2번 이상 선언하면 에러가 발생한다.(재할당은 상관이 없다.)

 

const - 변하지 않는 상수 값을 선언할 때 사용되며 재할당은 금지된다. 또한 const는 반드시 선언과 동시에 할당이 이루어져야한다. 선언만 할 경우는 에러가 발생한다. const도 let과 마찬가지로 블록 레벨 스코프를 갖는다. 

 

- 변수 선언에는 기본적으로 const를 사용하고, let은 재할당이 필요한 경우에 사용하는 것이 좋다. 원시 값의 경우, 가급적 상수를 사용하는 편이 좋다. 객체를 재할당하는 경우는 생각보다 흔하지 않으므로 const 키워드를 사용하면  의도치 않은 재할당을 방지해준다.

 

전역 객체(Global Object)

 

- 모든 객체의 유일한 최상위 객체를 의미하며 일반적으로 Browser-side에서 window를 의미한다.

 

 

호이스팅(Hoisting)

 

- var 선언문이나 function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성을 말한다. JS는 ES6에서 도입된 let, const를 포함하여 모든 선언을 호이스팅한다.

 

- 하지만 var 키워드로 선언된 변수와는 달리 let 키워드로 선언된 변수를 선언문 이전에 참조하면 참조 에러가 발생한다. 이는 let 키워드로 선언된 변수는 스코프의 시작에서 변수의 선언까지 일시적 사각지대(Temporal Dead Zone)에 빠지기 때문이다.

 

 

 

출처 : poiemaweb.com/js-built-in-object#21-%EC%A0%84%EC%97%AD-%EA%B0%9D%EC%B2%B4global-object

 

반응형

'Web > Java Script' 카테고리의 다른 글

데이터 타입과 변수  (0) 2020.09.17
자바스크립트 관련 용어 정리  (0) 2020.09.15
파이썬 vs 자바스크립트 기초 문법 비교  (0) 2020.04.28
댓글