본문 바로가기

코딩도 합니다/JS

[자바스크립트 js] 변수와 스코프 / 함수 스코프 / 블록 스코프



  1. 변수

  • 이름을 통해서 어떠한 값에 특별한 의미를 부여할 수 있음.
  • 프로그래밍에서 추상화에 가장 기본적인 수단

 

1-1. var

  • 변수 이름 중복 선언 가능(값의 재할당)
  • 변수 선언 전에 사용 가능(호이스팅)
  • 함수 스코프

 

1-2. let / const

  • 변수 이름 중복선언 불가 (SyntacError 발생)
  • 변수 선언 전에 사용 불가 (ReferenceError 발생)
  • 블록 스코프
  • const 키워드는 let 키워드와는 다르게 값을 재할당 할 수 없다.

 

 

 

  2. 스코프

2-1. 함수 스코프(functiuon scope)

  • var 키워드로 선언한 변수는 함수 스코프
  • 함수를 기준으로 스코프를 구분. 함수 안에서 선언한 변수는 함수 안에서만 유효하게 된다.
  • 함수를 제외한 for, if, while 등과 같은 문법 안에서 선언한 변수는 그 문법 밖에서도 계속 유효했었기 때문에, 중복선언 등의 문제가 발생한다.

 

2-2. 블록 스코프(block scope)

  • let과 const 키워드로 선언한 변수는 블록 스코프
  • 블록 스코프는 중괄호로 감싸진 코드 블록에 따라 유효 범위를 구분한다.

 

 

2-3. 스코프 정리

var x; //함수 스코프 (function scope)

let y; // 블록 스코프 (block scope), 코드블록

const z; //블록 스코프 (block scope), 코드블록

 

728x90