[JavaScript] var의 특징 호이스팅(hoisting)과 스코프(scope)

빵호·2021년 7월 1일
0

JavaScript

목록 보기
2/28
post-thumbnail

호이스팅(hoisting)

기존 코드

consol.log(name); // undefined
name = '빵호';
consol.log(name); // 빵호
var name;

호이스팅(hoisting)이 적용된 코드

var name;
consol.log(name); // undefined
name = '빵호';
consol.log(name); // 빵호

var는 변수를 선언하기도 전에 값을 할당할 수도 있고 출력도 할 수도 있다.

이것을 호이스팅(hoisting)이라고 하고 어디에 선언을 하던 상관없이

해당 함수 유효 범위의 최상단에 선언을 끌어올려 준다.

스코프(scope)

전역 스코프

{
name = '빵호';
var name;
}
consol.log(name); // 빵호

함수 스코프

function func(){
  var name = '빵호';
  consol.log(name); // 빵호
}
consol.log(name); // error

첫번째 코드를 보면 name이라는 변수를 블록 안에 선언했음에도 불구하고

블록 밖에서 값이 찍히는 것을 볼수있고 이를 통해 전역 스코프라는 것을 알수 있다.

하지만 두번쨰 코드 함수의 경우를 보면 함수의 중괄호{} 안에서만 값이

찍히고 밖에서는 에러가 뜨는것을 볼수 있다. 이러한 이유는 함수 안에서 var의

스코프가 함수 스코프 이기 떄문이다.

profile
늘 한결같이 꾸준히

0개의 댓글