반응형
자바스크립트의 변수 선언 방법
과거에는 var를 사용하는 것밖에 없었지만 이제는 const, let, var 같이 여러가지가 있으며 사용 방법도 다르다.
var one = 1;
console.log(prev); // undefined -> 자바스크립트 호이스팅 특성
function change() {
console.log(one);
let two = 2;
const three = 3;
console.log(two);
console.log(three);
one = 11;
two = 22;
// three=33; Uncaught TypeError: Assignment to constant variable.
}
var prev = 3;
change();
console.log(one); // 11
var one = '일입니다';
console.log(one); // 일입니다
// console.log(two); //two is not defined at
const three = 33;
console.log(three); //33
별 다른 이유가 없다면 const를 쓰는 것이 좋다.
why? 변수에 값을 할당하는 것은 정보를 선언하는 것 뿐만 아니라 무엇을 정보로 할지에 대한 신호를 보내는 것(한번 할당하고 변경하지 않는다면 해당 변수의 변경에 대해 신경을 크게 쓰지 않아도 됨)
✅ const
- 블록 유효 범위(block scope) 기준
- 블록의 문맥 내에서 재할당할 수 없는 변수 선언.
- 재할당할 수 는 없지만 값을 바꿀수는 있다.(객체, 배열)
블록 유효 범위 변수 선언 - 변수는 블록 내에서만 접근 가능
✅ let
- 블록 유효 범위(block scope) 기준
- 같은 이름의 변수를 다시 선언할 수 없다.
- 재할당이 필요한 경우는 const 보다 let을 권장
✅ var
- 어휘적 유효 범위(lexical scope) 기준
- 같은 이름의 변수를 다시 선언할 수 있다.
어휘적 유효 범위 - 함수 내부 어디서든 접근 가능
✅ 추가 사항
- var로 할 수 있는 것은 대부분 let으로 대체 할 수 있으므로 var 사용을 지양.
- 호이스팅 - 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것
반응형
'TIL' 카테고리의 다른 글
WebRTC ver.1 (0) | 2022.03.14 |
---|---|
[자바스크립트] 변수 (0) | 2022.03.14 |
git rebase (0) | 2022.02.19 |
첫 팀프로젝트 후기 (0) | 2022.02.16 |
자바스크립트 함수 (0) | 2022.02.13 |