-
변수Javascript 2020. 1. 2. 14:26
변수 선언
변수 선언은 var 키워드를 사용한다. 하나의 var 키워드에 여러 개의 변수를 선언할 수 있다. 또한 변수의 선언과 초기화를 함께 할 수 있다.
1var i = 0, j = 0, k = 0;만일 변수의 초기화를 지정하지 않을 경우 변수 선언은 되지만, 값은 undefined이다.
변수 선언의 반복과 생략
var 구문으로 같은 이름의 변수를 여러 번 선언해도 무방하다. 만일 그 반복된 선언에 변수 초기화 구문이 함께 있을 경우 그 변수에 값을 할당하는 구문과 동일하게 작동한다. 그리고 선언되지 않은 변수는 암묵적으로 그 변수를 전역 변수로 선언된다. 그 변수가 함수 안에 쓰인다 하더라도 마찬가지이다.
정의되지 않은 변수 vs 할당되지 않은 변수
정의되지 않은 변수의 첫 번째 종류는 아직 선언된 적이 없는 변수인데 이 경우, 런타임 에러가 발생한다. 그러나 정의되지 않은 변수에 값을 할당할 때는 암묵적으로 전역 변수로 선언해준다. 두 번째 종류는 선언은 했지만 값이 할당되지 않은 경우다. 이 경우, undefined를 얻게 된다.
가비지 컬렉션
동적으로 할당하는 참조 타입은 언젠가 반드시 해제하고 재활용 해야한다. C/C++과는 달리 가비지 컬렉션이라는 기술에 의존해 Heap 공간을 관리한다. 자바스크립트 인터프리터는 어떤 객체가 어느 시점부터 프로그램에서 쓰이지 않는지 알아챌 수 있다. 어떤 객체가 더이상 접근할 수 없다고 판명되면 해당 객체의 메모리를 회수한다.
let
var와 다르게 변수 재선언 불가능이다. let과 const의 차이점은 변수의 immutable여부이다. let은 변수에 재할당이 가능하지만, const는 변수 재선언, 재할당 모두 불가능하다.
출처
자바_스크립트_완벽가이드