-
[JavaScript] ES6, 변수 총 정리 ( var, let, const)프로그래밍 언어/JavaScript 2023. 1. 15. 17:40
ES6 문법에선 변수 선언 방법이 3가지가 있다. var, let, const 라는 3가지 인데 각각 쓰임과 특징이 다르다. 그 특징을 정리해보려고 한다.
1. 선언
2. 할당
3. 범위📑 1. 선언
var는 재선언이 가능하다. let과 const는 재선언이 불가능하다. 즉) 이미 있는 변수명을 또 다시 선언하려고 하면 에러가 나는 것.
var 이름 = 'kim'; //재선언 o, 재할당 o, 범위 function var 이름 = 'park'; //위와 같이 var 이름을 중복해서 재선언이 가능하다. //이처럼 let, const는 재선언이 안 된다. let 나이 = 20; let 나이 = 30;
📑 2. 할당
var과 let은 재할당이 가능하다. 즉) 위에서 선언한 값을 변경하려고 할 때 변경 가능하다. 그러나 const는 변경 불가능 즉) 자바에서 상수라고 생각하면 이해하기 쉬울 것 같다.
var 이름2 = 'kim'; 이름 = 'park'; //재할당, var과 let은 재할당이 가능하다. //const는 재할당 불가능 const 나이1 = 20; 나이1 = 30; console.log(나이1);
이미 선언한 const 변수에 새로운 값을 할당했을 때 발생하는 에러.
그럼 Object 내에서 const 변수를 생성했을 때 이 값도 재할당 불가능할까? 이것은 아니다. 이는 값을 재할당 하는 게 아닌 변수의 값을 변경하는 것!
const 사람 = { 이름 : 'kim' } Object.freeze(사람); 사람.이름 = 'park'; //변수 자체에 재할당하는 게 아니라 오브젝트 내부 값을 변경하는 것.
만약 값을 변경하지 못하게 하려면 .freeze()라는 함수를 사용하면 된다.
📑 3. 함수 범위
var의 범위는 함수 내이며, let과 const는 { } 중괄호 안에서만 생존한다.
function 함수(){ //var는 function 내에서만 존재함 //함수 밖에서는 호출할 수 없음. var 이름 = 'kim'; } if(ture){ //let, const는 범위는 모든 중괄호 //function보다 더 작은 모든 중괄호 안에서 살고 죽는다. let 이름 = 'kim'; }
위와 같은 특징들을 정리하면 다음과 같다. !!
재선언 재할당 범위 var o o function let x o { } 중괄호 const x x { } 중괄호 반응형'프로그래밍 언어 > JavaScript' 카테고리의 다른 글
[JS] 문자열 정렬하기, (localeCompare()) (0) 2023.02.08 [JavaScript] 함수 선언하는 방법 ( 선언식 vs 표현식) (0) 2023.01.15 [JS] input 태그에 value 값 넣기 (0) 2022.12.26 [JS] || 기능 살펴보기, 참과 거짓을 판단하는 게 아니다 (0) 2022.12.15 [JavaScript] for 반복문 사용하는 방법 (0) 2022.11.27