자바스크립트 변수 선언에는 3가지가 있다. var, let, const
처음에는 var만 있었는데 ES6(2015)부터 let, const가 새로 생겼다.
3가지로 나눈데에는 이유가 있고, 각각 알맞는 쓰임새가 있기 때문에 이 세 개의 차이를 확실히 정리해보려한다.
* 자바스크립트 변수 선언의 특징.
자료형에 상관없이 선언한다: 정수, 실수, 문자열 상관없이 그냥 선언할 수 있다. (=파이썬 처럼)
0. 지역변수와 전역변수
지역변수: 함수 내에서 선언된 변수.
블럭{ }안에서 선언된 것은 함수 내에서만 사용가능하고
함수 시작시 생성되고 함수 종료시 삭제된다. -> 필요할때 쓰고 버리는 느낌..?
전역변수: 해당 코드의 모든 부분에서 사용가능한 변수
var a = 10;
function fun() {
var a = 20;
return "지역변수 : " + a;
}
document.write(fun()); // 20
document.write("전역변수 : " + a); //10
1. const
: 재할당 불가능. 한번 값을 넣으면 값을 변경할 수 없다.
기존의 변수들은 한번 선언하고 초기화를 한 후 값을 변경할 수 있었다. ex) var a = 10; a = 5;
하지만 const로 선언할 경우, 값을 바꿀 수 없다.
=> 값이 변경되면 안되는 중요한 값의 경우 const로 선언하면 실수로 바뀔 일이 없음.
2. var
: 재할당, 재선언 가능. 3가지 중 가장 자유로운 편이다.
함수 내에서 선언되면 -> 지역변수
함수 외에 선언되면 -> 전역변수
함수(function)안에서 선언된거는 함수 밖에서 사용할 수 없지만
그 외(if, try 등)에서 선언된거는 블럭{ }안에서 된거라도 전체적으로 사용할 수 있다. (<- 제일 자유롭다고 한게 이거!)
(↖ java에서는 상상도 할 수 없는 일..)
3. let
: 재할당 가능.
블럭{ } 안에서 할당된거는 모두 지역변수. 외부에서 참조가 불가능하다.
4. 표로 한번에 보기
var | let | const | |
재선언 | O | X | X |
재할당 | O | O | X |
함수 외부참조 | X | X | X |
블럭 외부참조 | O | X | X |
5. 사용 비율
let과 const 등장 이후 var는 거의 사용하지 않고있다.
재선언, 함수 외에 외부참조가되다보니 코드 중복이 많아질 수 있고, 실수 확률도 높아지기 때문이다.
그래서 안전성을 위해 값을 바꿔야 하는 경우가 아니면 const를 우선적으로 사용하고
값이 중간에 바뀌면 let를 권장하고 있다.
'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
JavaScript) 알림(경고)창 2 종류(alert, confirm) (0) | 2022.01.26 |
---|---|
JavaScript) 문자열에서 특정 문자 찾기(검색) (0) | 2022.01.07 |
JavaScript) 데이터유형(Data Type), typeof, 형변환 (0) | 2022.01.04 |
JavaScript) 조건문. if ~ else, 삼항연산, switch~case (0) | 2022.01.03 |
JavaScript) 자바스크립트로 HTML요소 작업(기능). (0) | 2021.12.30 |