TIL

[자바스크립트] 자바스크립트 변수 선언 방법

세모이 2022. 3. 13. 20:56
반응형



자바스크립트의 변수 선언 방법

과거에는 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 사용을 지양.
  • 호이스팅 - 함수 안에 있는 선언들을 모두 끌어올려서 해당 함수 유효 범위의 최상단에 선언하는 것
반응형