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부터 letconst 선언을 사용하면 블록 스코프 변수를 만들 수 있습니다.