Scope는 무엇인가요?
-각 상수나 변수 등의 요소들이 허용된 영역, 범위를 말합니다.
Hoisting이란 무엇인가요?
-모든 선언을 가장 위로 끌어올린다는 의미입니다.
함수를 선언하기 이전에 함수의 값을 사용한다는 것이 안되지만 ,
var 변수는 hoisting이 가능하기 때문에 변수 선언 이전에 호출하고 이후에 변수를 선언하여도 오류없이 처리되는 것을 볼 수 있습니다.
var 변수 : 값을 변경할 수 있을 뿐 아니라 언제든 다시 선언할 수 있습니다.
const 상수 : 선언할 때 값을 넣어주어야 하고 한번 넣은 값은 바꿀 수 없는, 상수를 말합니다.
let 변수 : 선언과 값 정의 따로 할 수 있다. 넣은 값을 이후 얼마든 바꿀 수 있지만 선언을 다시 하는 건 못하게 되어 있습니다.
*const와 let은 자바스크립트의 ES6, ECMA 2015 버전부터 생긴 것들 입니다.
var 변수는 자바스크립트 특유의 개념인 hoisting을 이용할 수 있어서 선언부 위로 올라갈 수 있습니다..
const나 let은 블록안에서 선언되면 그 안으로 제한되는 블록 레벨 스코프를 가집니다.
하지만 var 변수들은 선언부가 함수 안이기만 하면 블록에 선언되었다해도 해당 함수아 안을 어디든 돌아다닐 수 있습니다.
*불가피한 상황이 아니면 전역변수를 사용하지 않는다.
var 변수는 이후에 선언되기 전에 사용가능하며 과거의 자바스크립트에서 남은 잔해라고 여깁니다.
함수 스코프를 가지기 때문에 때때로 문제를 마주하게 만듭니다.
'javascript' 카테고리의 다른 글
TIL no.19 - Scope가 무엇인가요? (0) | 2020.10.03 |
---|---|
TIL no. 11 - todo 만들면서 JavaScript 모르는 것들 정리 (0) | 2020.08.30 |
TIL no.8 - forEach method :JavaScript (0) | 2020.08.23 |
TIL no.7 - appendChild 함수 (0) | 2020.08.21 |
TIL no.5 - Javascript 기초 공부 정리[2] (0) | 2020.08.20 |