javascript 변수 호이스팅
자바스크립트에서는 변수를 선언하는 방법은
크게 3가지로 나누어져 있는데
다음과 같다.
var a; // ~ ES5
console.log(a);
let b; // ES6 ~
console.log(b);
// const 키워드의 경우 선언과 동시에 초기화 해주어야한다.
const c = 10; // ES6 ~
console.log(c);
ES5 전부터 사용된 var의 경우는 조금 특별한 현상이있는데 일단은 현상부터 보면
console.log(sample); // undifined
var sample = 10;
위와 같이 먼저 변수를 호출 하고 아래에서 선언 및 초기화 하여도 에러가 뜨는것이 아닌 undifined 대입되지 않았다고 나타난다는 것이다.
var sample = 10;
사실의 위의 구문은 두개의 구문이 합쳐진것인데 var 구문을 사용할경우 함수 선언문을 먼저 호출하고 이후에 변수에 값을 할당 해준다. 때문에 위와 같은 현상이 나타나고 이를 함수 호이스팅 이라고 한다.
var sample = 10;
// 선언문
// var sample;
// 초기화 및 대입
// sample = 10;
이런 현상은 ES6이후부터 추가된 let이라던가 const에서는 찾아보기 어렵지만 그래도 var 사용하는경우가 많으니 염두해두고 처리하는것이 좋을거같다.
'JavaScript > Vanilla JS' 카테고리의 다른 글
로컬스토리지 (localStorage) (0) | 2021.02.18 |
---|---|
날짜 객체 (new Date()) (0) | 2021.02.09 |
javascript에서 copy 하기 (0) | 2020.12.16 |
javascript Auto Text Write (0) | 2020.12.14 |
replace (0) | 2020.12.08 |
댓글
이 글 공유하기
다른 글
-
로컬스토리지 (localStorage)
로컬스토리지 (localStorage)
2021.02.18 -
날짜 객체 (new Date())
날짜 객체 (new Date())
2021.02.09 -
javascript에서 copy 하기
javascript에서 copy 하기
2020.12.16 -
javascript Auto Text Write
javascript Auto Text Write
2020.12.14