변수는 어떠한 이름의 보관함을 하나 생성해서
그 보관함에 어떠한 데이터를 담아 놓는 공간이다.
이것을 왜 쓸까?
아래와 같은 경우를 보자
console.log('안녕하세요');
console.log('안녕하세요');
console.log('안녕하세요');
console.log('안녕하세요');
console.log('안녕하세요');
vs
let str = '안녕하세요';
console.log(a);
console.log(a);
console.log(a);
console.log(a);
console.log(a);
과연 어느 것이 더 타이핑을 적게 할까?
그리고 안녕하세요
가 아닌 잘가세요
라고 바꾸려면
위의 것은 전부다 바꿔줘야하지만
아래의 것은 let str = '안녕하세요'
이 부분만 바꿔주면 된다.
이렇게 왜 변수를 사용해야 하는지에 따라서 알아보았고 이를 사용하는 방법은
let <변수 이름> = <값>;
//ex)
let num = 1; //num이라는 이름의 보관함을 만들고 1이라는 숫자 값을 넣어놔라
위와 같은 방법으로 사용하면 되겠다.
그리고 let
이라는 변수 선언 키워드 뿐만 아닌 다른 변수 선언 키워드들도 있다.
자바스크립트에서 변수 선언 키워드는 총 3가지가 있다.
var
let
const
그리고 이 3가지의 키워드에 대해 알아 보도록 하자.
var
키워드를 사용하여 변수 선언 하는 방법은 아래와 같다.
var str = 'hello velog';
이 키워드를 사용하여 변수 생성시 특이 점은
for(var i = 0; i < 10; i++) {
console.log(i); //0 ~ 9
}
console.log(i); //10
자바스크립트 배우기 이전에 코딩을 배워왔던 사람이면
마지막 console.log(i)
에서 이상한 점을 느꼈을 것이다.
보통 반복문에서 선언한 변수는 반복문이 끝나고 난 이후에는
해당 변수는 메모리에서 해제되어 사라지는걸로 알고 있을건데
var
키워드를 사용하여 변수 선언시에는 저렇게 남아 있다.
이 변수의 유효한 범위를 알기 위해서 아래와 같이 코딩해보았다.
function repeat(){
for(val i = 0; i < 3; i++);
console.log(i); // 3
}
function wow(){
var wow = 'wow';
}
console.log(wow); //[Error] wow is not defined
결과로 보이듯 var
키워드로 생성한 변수의 유효 범위는
함수내에서만 유효 하다는 것을 알 수 있다.
let
키워드는 일반적인 변수랑 하는 역할이랑 같다.
var
과 let
의 차이점은 유효범위에 따른 차이인데
이 코드를 보면 확실히 알 수 있다.
for(var i = 0; i < 3; i++);
console.log(i) // 3
for(let j = 0; j < 3; j++);
console.log(j) // [Error] j is not defined
이렇듯 let
으로 선언한 변수는 선언한 스코프({}
의 내부)내에서만
유효하다는 것을 알 수 있다.
const
키워드는 다른 변수 선언 키워드들과 다른 특징은
아래 코드는 잘못된 작성법에 대한 내용이다.
const a; //Missing initializer in const declaration
const a = 1;
a = 2; //Assignment to constant variable
오류가 난것을 보고 알 수 있듯이
해당 키워드를 사용하여 변수를 생성을 하려면
무조건 값을 넣고 할당하고
할당하면 값을 바꾸려고 하면 안된다.