자바스크립트를 사용하면서 그동안 var만 죽어라 고집했던 사람으로써,
처음 이직후 소스를 보고 충격을 받았던 기억은 아직도 생생함 ( 하긴, 이직한지 며칠밖에 안되서 ㅋㅋㅋㅋ충격은 여전)
const 와 let 의 개념을 알지 못하니 계속 var로 쓰는데 문제가 없었기에 상관하지 않았는데
오히려 var를 쓰는게 지양하는 추세라니(그것도 한참전부터) 그저 우물안에서 얼마나 갇혀있었는지 경력이 아깝다
var 는 모든 변수를 아우르는 명칭이다.
재선언 재할당 가능, 모든 변수를 쉽게 설정할 수 있는 마법의 용어로 인식되어 자바스크립트가 쉽고 편하게 사용할 수 있다라는 인식에 큰 기여를 하였다.
하지만 var 변수 선언에는 문제가 있다. 상단에 정의한 것처럼 재선언이 가능하다는 것!!
[예제]
function test(){
var test1 ="안녕하세요";
var test1 = "반가워요";
return test1;
}
console.log(test());
함수안에 재선언이 가능하기때문에 스크립트를 열심히 짜놓고도
실수에 따라서 내가 원하는 값이 나오지 않거나 값이 뒤집어쓰는 경우가 가능하고
그걸 찾아내지 못하면 몇번 헤맨적도 있기 때문에(한개 함수에 3일을 쓴적이있는가..)
var를 쓰는것에는 아무래도 해당 위험을 항상 감수해야 했다.
그렇담 const, let 은 어떤 차이를 가지기에 안정적으로 사용할 수 있는것일까?
- const : 선언 후 재할당 불가 . 즉, 한번 선언 후 값은 절대 바뀔수 없다 (java에서 final과 같은 역할)
- 함수 자체도 선언 후 변경가능하지 않기때문에 대부분 함수선언에도 쓰임.
- let : 선언 후 재할당 가능 그러나 재선언은 불가 . 한번만 선언할 수 있고 값은 바뀔수 있다.
- 기존 var에서 계속 같은이름으로 선언이 가능한것에 비해 한번만 선언할수 있게 업데이트 됨.
[예제]
1. const 재선언을 하려고 하는경우
const final ="안바뀝니다.";
const func1 = function test1(){
final = "바뀌나요";
return final;
}
console.log(func1()); // 오류발생 : 해당 변수는 재할당이 불가하다는 오류를 내뱉음
2. let 재할당하려고 하는경우
let test ="바뀔까요?";
const func2 = function test2(){
test="바뀌었어요!";
return test;
}
console.log(func2()); // 바뀐값 그대로 출력
3. let 재선언 하려고 하는경우 (상단 var예제와 동일한 상황)
const func3 = function test3(){
let test ="바뀔까요?";
let test="새로 선언했어요!";
return test;
}
console.log(func3()); // 오류발생 : 해당 변수는 재선언이 불가하다는 오류를 내뱉음
결과.
바뀌지 않을 값이라면 const / 바뀔 값이라면 let
사담.
인간적으로 업데이트된건 한번쯤은 들쳐봐야 되지 않겠니.
열심히 하자 ..
'JAVASCRIPT' 카테고리의 다른 글
Conditionals 확실히 알고있어? : 헷갈리는 개념 복습! (0) | 2022.01.12 |
---|---|
'use strict'을 발견했다면? : strict모드에 관하여 (0) | 2022.01.10 |
니꼬샘 ES6의 정석 강의 미리보기: var를 사용하면 안되는 이유(최종판) (0) | 2022.01.07 |
.filter() 써봅니다... feat . MDN (0) | 2022.01.06 |
ES6 문법 익히기 프로젝트 - 문자열반복 (0) | 2022.01.05 |