[JavaScript] 변수 선언 var, let, const
1. var
- 변수에 중복 선언이 가능
- 값을 다시 할당 가능
- 함수 레벨 scope(블록 내부에 선언되어도 외부에서 접근 가능)
- 변수명 중복이 가능하기 때문에 문제를 야기 할 수 있음
var num = 10;
console.log(num);
var num = 20;
console.log(num);
2. let
- 변수에 중복 선언이 불가능
- 값을 다시 할당 가능
let num = 10;
console.log(num);
let num = 20;
console.log(num);
let num이 중복 선언되었다고 console에서 알려준다.
3. const
- 변수에 중복 선언이 불가능
- 한번 할당한 값을 변경할 수 없음(변하지 않는 상수)
const number = 1;
console.log(number);
const number = 2;
console.log(number);
const num 또한 중복 선언되었다고 console에서 알려준다.
4. 호이스팅(hoisting)
- 자바스크립트 실행시 변수와 함수에 대해 호이스팅을 적용하고, 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것을 말한다.
4-1) var
console.log(number); //undefiend
var number = 3;
자바스크립트 실행 시에 호이스팅에 의해 var로 선언된 number변수가 최상단으로 선언되기 때문에 에러가 나지 않고 undefined가 나오게 된다. 그 이유는 var로 선언된 변수는 호이스팅이 되어 초기화와 선언이 동시에 적용되기 때문에 undefiend가 나오게 된다 !
4-2) let
console.log(number); //number is not defined
let number = 3;
자바스크립트 실행 시에 호이스팅에 의해 let으로 선언된 number변수가 최상단으로 선언되지만 number is not defined가 나오게 된다. 그 이유는 let으로 선언된 변수는 호이스팅이 되어 선언은 되지만 초기화는 실제 let이 사용한 지점에 도착했을 때 적용이 되기 때문에 초기화 이전에 변수에 접근하는 에러가 발생한다!
5. 변수의 3단계 과정
- 선언
- 초기화
- 할당
Author And Source
이 문제에 관하여([JavaScript] 변수 선언 var, let, const), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@go286/JavaScript-변수-선언-var-let-const저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)