var, const, let 차이점

하태현·2020년 10월 20일
1

javascript

목록 보기
1/23
post-thumbnail

1. var , let , const

  • var 문은 변수를 선언하고, 선택적으로 초기화할 수 있다.
    참조 문서 MDN
var x = 1;

if (x === 1) {
  var x = 2;

  console.log(x);
  // expected output: 2
}

console.log(x);
// expected output: 2
  • const 선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다
    참조문서 MDN
const number = 42;

try {
  number = 99;
} catch (err) {
  console.log(err);
  // expected output: TypeError: invalid assignment to const `number'
  // Note - error messages will vary depending on browser
}

console.log(number);
// expected output: 42
  • let 구문은 블록 유효 범위를 갖는 지역 변수를 선언하며, 선언과 동시에 임의의 값으로 초기화할 수도 있다.
    참조문서 MDN
let x = 1;

if (x === 1) {
  let x = 2;

  console.log(x);
  // expected output: 2
}

console.log(x);
// expected output: 1	

2. 세가지 선언 방법의 차이점

  1. var는 함수 레벨 스코프이고 let, const는 블럭 레벨 스코프.

  2. var로 선언한 변수는 선언 전에 사용해도 에러가 나지 않지만 let, const는 에러가 발생.

  3. var는 이미 선언되어있는 이름과 같은 이름으로 변수를 또 선언해도 에러가 나지 않지만 let, const는 이미 존재하는 변수와 같은 이름의 변수를 또 선언하면 에러가 납니다.

  4. var, let은 변수 선언시 초기 값을 주지 않아도 되지만 const는 반드시 초기값을 할당해야 합니다.

  5. var, let은 값을 다시 할당할 수 있지만 const는 한번 할당한 값은 변경할 수 없습니다(단, 객체 안에 프로퍼티가 변경되는 것까지 막지는 못합니다).

3. 정리하며... 👏

var는 변수를 재 선언 해도 에러가 발생하지 않는다.

    var name = 'king'
    console.log(name) // king

    var name = 'th'
    console.log(name) // th

유연한 변수 선언으로 간단한 테스트에는 편리 하지만, 코드량이 많아 진다면 어디에서 어떻게 사용 될지도 파악하기 힘들 수 있다.

그래서 ES6 이후, constlet이 추가 되었다.

선언 방식만 바꾸어 본다.

    const name = 'king'
    console.log(name) // king

    cosnt name = 'th'
    console.log(name) 
    // "SyntaxError: Unexpected identifier
    let name = 'king'
    console.log(name) // king

    let name = 'th'
    console.log(name) 
    // "SyntaxError: Unexpected identifier

둘 다 변수 재 선언이 불가능 하다.

그럼 constlet의 차이점이 무엇일까?

const는 재할당이 불가능하고,
let은 재할당이 가능하다.

profile
왜?를 생각하며 개발하기, 다양한 프로젝트를 경험하는 것 또한 중요하지만 내가 사용하는 기술이 어떤 배경과 이유에서 만들어진 건지, 코드를 작성할 때에도 이게 최선의 방법인지를 끊임없이 질문하고 고민하자. 이 과정은 앞으로 개발자로 커리어를 쌓아 나갈 때 중요한 발판이 될 것이다.

0개의 댓글