자바스크립트/문법
[자바스크립트] 변수 및 호이스팅 정리
위르겐
2022. 5. 7. 22:11
자바스크립트는 변수나 함수의 선언부분을
변수의 범위 맨 위로 강제로 끌고가서 가장 먼저 해석한다.
그게 Hoisting이다.
function 함수(){
console.log(이름);
var 이름 = 'Klopp';
}
이런 함수를 만들었다고 가정할 때
함수를 실행하면
콘솔에 이름이라는 정의되지않은 변수가 먼저 찍혀야하니
에러가 떠야한다. (원래대로라면)
하지만 에러대신 undefined가 뜬다
그 이유는
function 함수(){
var 이름;
console.log(이름);
이름 = 'Klopp'; }
자바스크립트라는 문법은 호이스팅이 일어나기 때문에
위의 함수처럼 인식을 하고 위에서부터 읽어내려간다.
그럼 var 이름; <= 이 선언부분만 위쪽으로 끌어올려져
할당되지 않은 이름이라는 변수가 먼저 출력되고
그 과정에서 undefined가 뜨게 되는 것이다.
변수는 전역변수와 지역변수가 있는데
for문이나 if문 그외 모든 함수내에서 사용하고 싶은 변수를 만들 때는
자바스크립트파일이나 html파일 스크립트태그내에서 맨 위에
var 나이 = 20;
let 이름 = '김판호';
이렇게 작성하면 끝이다.
하지만 지역변수는
함수(); function 함수() {
let 안녕 = 'Hello!';
console.log(안녕);
}
이렇게 함수 내에서 선언하고 할당한 변수는
함수 내에서만 사용가능하다!
반응형