728x90
반응형
var
- es5의 변수 선언 방법
- Function-level Scope
let
- es6의 변수 선언 방법
- Block-level Scope
- 일반 변수
- 중복 선언시 TypeError 발생
const
- es6의 변수 선언 방법
- Block-level Scope
- 상수용 변수
- 처음 생성 시 초기값 필수 지정
함수 레벨 스코프 (Function-level scope)
- 함수 내에서 선언된 변수는 함수 내에서만 유효하며, 함수 외부에서 참조 불가능
- 함수 내부에서 선언한 변수는 지역 변수 / 함수 외부에서 선언한 변수는 전역 변수
- 자바스크립트
특징
- var 키워드 생략 허용
- 변수 중복 선언 허용
- 전역 변수 남용
블록 레벨 스코프 (Block-level scope)
- 모든 코드 블록(함수, if문, for문, while문, try/catch 문 등) 내에서 선언된 변수는 코드 블록 내에서만 유효
- 코드 블록 외부에서는 참조 불가
- 코드 블록 내부에 선언한 변수는 지역 변수
- 대부분의 프로그래밍 언어
호이스팅
- var 선언문이나, function 선언문 등을 해당 스코프의 선두로 옮긴 것처럼 동작하는 특성
예제)
console.log(foo); // undefined
var foo;
console.log(bar); // Error: Uncaught ReferenceError: bar is not defined
let bar;
출처
728x90
반응형
'Programming > JavaScript & TypeScript' 카테고리의 다른 글
[Angular5] translate 현재 사용중인 언어 가져오기 (0) | 2020.09.22 |
---|---|
호이스팅 (Hoisting) (0) | 2020.09.15 |
ECMAScript란? (0) | 2020.09.14 |
[Angular5] translate 번역 값이 안나오고 번역 키가 대신 나오는 현상 해결 (0) | 2020.09.11 |
[Node.js-Mongo] MongoError: Exceeded memory limit for $, but didn't allow external sort. Pass allowDiskUse:true to opt in. 해결 (0) | 2020.09.11 |