본문 바로가기
내마음대로만들어보자/React

리액트 필수 자바스크립트 기초 - let , const, Scope

by 소농민! 2021. 6. 29.
728x90

1. 스코프 (Scope)

우리가 어떤 변수를 선언했을 때, 그 변수를 사용할 수 있는 유효범위

 

var: 함수 단위

let: block 단위(변수: let으로 선언한 변수는 값이 변할 수 있습니다.)

const: block 단위(상수: 한번 선언한 값은 바꿀 수 없습니다.)

 

 

결과 

0 0 0 

0 0 1

 

var는 함수단위라서 if 문 밖에서 선언한 값이 변하는걸 알 수 있다.

 

 

2. 스코프(Scope) 타입 

 - 전역 스코프(Global Scope) : 전역에 선언되어 어느곳에서든지 해당 변수에 접근이 가능

 - 지역 스코프(Local Scope) : 해당지역에서만 접근가능하며, 지역을 벗어나면 접근할 수 없다.

    → 함수스코프의 예가 지역스코프라고 할 수 있다.   

이럴경우

print(); → 111 

console.log(a); → 1    출력된다.

 

print() 함수에서 console.log 는 a를 출력하기위해 자신의 함수스코프 내에서 a를 찾게되기때문에 111이 출력된다.

만약에, var a = 111 선언되지 않는다면 전역스코프에 선언되어있는 a의값을 출력하게되어 1이 출력된다.

 

이는 Scope Chain에 의해 일어나는 현상인데요. 현재 자신의 scope에서 사용하고자 하는 변수가 없다면 Scope Chain을 통해 해당 변수를 찾게된다.

 

함수를 선언할 때 중괄호로 함수 본문을 둘러싸게 되는데 이부분을 블록이라고 할 수 있다.