3 변수 (variables)
source: categories/study/javascript-mdn/javascript-mdn3.md
변수
자바스크립트에서 새로운 변수는 let
, const
, var
키워드로 선언됩니다.
let
을 사용하면 블록 레벨 변수를 선언할 수 있습니다.
선언된 변수는 ‘변수가 선언된 블록'에서 사용할 수 있습니다.
let a;
let name = 'Simon';
아래는 let
으로 선언한 변수의 스코프(scope)의 예시입니다.
// myLetVariable는 여기에서 보이지 않습니다.
for (let myLetVariable는 = 0; myLetVariable는 < 5; myLetVariable는++) {
// myLetVariable는는 여기에서만 사용할 수 있습니다.
}
// myLetVariable는는 여기에서 보이지 않습니다.
const
는 값이 변경되지 않을 변수를 선언할 수 있게 합니다.
변수는 ‘변수가 선언된 블록'에서 사용할 수 있습니다.
const Pi = 3.14; // 변수 Pi 설정
Pi = 1; // 상수 변수는 변경할 수 없기 때문에 에러 발생
var
키워드는 let
, const
키워드가 가지는 제한을 가지지 않습니다.
이는 자바스크립트에서 변수를 선언하는 전통적으로 유일한 방법이었기 때문입니다.
var
키워드로 선언된 변수는 ‘변수가 선언된 함수'에서 사용할 수 있습니다.
var a;
var name = 'Simon';
var
로 선언한 변수의 스코프 예시입니다.
// myVarVariable은 여기서 사용할 수 있습니다.
for (var myVarVariable = 0; myVarVariable < 5; myVarVariable++) {
// myVarVariable는 함수 전체에서 사용할 수 있습니다.
}
// myVarVariable는 여기서 사용할 수 있습니다.
변수에 값을 지정하지 않고 변수를 선언하면 타입은 undefined
로 지정됩니다.
자바스크립트와 자바 같은 다른 언어 사이의 중요한 차이점은 블록에 스코프가 없었다는 것입니다.
함수에만 스코프가 있었습니다.
변수를 복합문에서 (예를 들어 if
제어구조 내에서) var
를 사용하여 정의한 경우 함수 전체에서 볼 수 있었습니다.
그러나 ECMAScript 2015부터 let
및 const
선언을 사용하면 블록 스코프 변수를 만들 수 있습니다.