변수 (Variable) - 2
변수의 선언
자바스크립트에서는 변수를 선언할 때,
var
, let
, const
를 사용해 선언한다.
각각의 선언의 특징에 대해 알아보자!
var
var
는 변수를 선언할 때 사용하고, 선택적으로 값을 초기화할 수 있다.
var num;
var num2 = 3;
변수 선언만 할 수도 있고, 변수에 값을 초기화하면서 선언할 수도 있다.
var
로 선언된 변수의 범위는 현재 실행 문맥이다.
그 문맥은 변수를 둘러싼 함수, 혹은 함수 외부에 전역으로 선언된 변수일 수도 있다.
let
let
또한 변수를 선언할 때 사용하는데, 선언과 동시에 임의의 값으로 변수를 초기화한다.
let num = 3;
let
으로 선언된 변수의 범위는 블록이다.
var과 let의 차이
var
로 선언된 변수는 블록을 고려하지 않고, 현재 함수 어디에서나 접근이 가능하다. 반면 let
으로 선언된 함수는 블록 내에서 사용 가능하다.
function varFunc() {
var num = 1;
if (true) {
var num = 2;
console.log(num); // 2
}
console.log(num); // 2
}
function letFunc() {
let num = 1;
if (true) {
let num = 2;
console.log(num); // 2
}
console.log(num); // 1
}
이로 인해, switch
문과 같이 한 블록을 사용하는 경우 let
을 여러번 선언하면 문제가 될 수 있다.
switch(num) {
case 1:
let i = 1;
break;
case 2:
let i = 2; // 재선언으로 인한 SyntaxError;
break;
}
그리고, let
은 초기화 시점을 지난 후에야 변수를 사용할 수 있다. var
로 선언된 변수의 경우 초기화 시점이 지나지 않고 사용한 경우 에러가 아니라 undefined
를 출력한다. 하지만, let
의 경우 ReferenceError
를 보게 된다.
console.log(num) // undefined
var num = 2;
console.log(num2) // ReferenceError
let num2 = 3;
이에 JS의 실행 컨텍스트, 호이스팅에 대한 개념이 필요한데, 나중에 정리하자.
const
let
과 같이 블록 범위를 가지며, 변수가 아닌 상수를 표현한다. 재선언, 재할당되지 않는다. 선언과 동시에 값을 초기화한다.
const myName = 'sinf';
참고
Author And Source
이 문제에 관하여(변수 (Variable) - 2), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sinf/js-variable2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)