[JavaScript] var, let, const 차이

Kim Ji Yun·2021년 12월 16일
0

자바스크립트에서는 변수를 사용하기 전에 변수 선언을 해야한다. 변수 선언 시 var, let, const 키워드를 이용하여 여러개의 변수를 선언함과 동시에 초기화 할 수 있다.

var

var apple; // 변수 i 선언 
var a, b, c; // 여러개의 변수 선언
var i = 0; j = 1; k = 2;  // 여러개의 변수 선언과 동시에 초기화

let

let apple; // 변수 i 선언
let a, b, c; // 여러개의 변수 선언
let i = 0; j = 1; k = 2;  // 여러개의 변수 선언과 동시에 초기화

const

const apple;  // SyntaxError
const a, b, c;  // SyntaxError
const i = 0; j = 1; k = 2;

var와 let으로 선언된 변수에 초기 값을 지정하지 않는 다면, 변수는 값이 할당될 때까지 ‘undefined‘ 값을 갖게 된다.
const는 var과 let과 달리 변수에 초기 값을 지정하지 않은 채 선언하면 구문에러(SyntaxError)가 발생한다.
const로 변수를 선언할 때는 반드시 초기 값을 지정해줘야 한다.

var, let, const의 차이점

var는 function-scoped이고, let, const는 block-scoped이다.

function-scoped

모든 변수가 함수에 속하고 함수 전체에 걸쳐서 사용

block-scoped

선언된 변수를 둘러싼 블록의 스코프를 이용

var

  • 자바스크립트에서 변수를 선언하기 위한 선언자이다.
  • 변수의 유효 범위의 대한 문제가 존재한다.

ex) 기존의 존재하는 변수 name를 재선언하여도 에러가 발생하지 않는다.

var name
var name
// 오류 없음

let

  • 위 같은 var의 문제점을 보완하기 위해 ECMAScript 6부터 추가된 변수 선언자다.

ex) 위 var과는 다르게 이미 존재한다는 에러 메시지를 보여준다.

let name2
let name2
//오류발생 Uncaught SyntaxError: Identifier 'name2' has already been declared

const

  • let과 마찬가지로 ECMAScript 6부터 추가된 선언자 이다.
  • let과는 다르게 선언 시 한번만 초기화 할 수 있는 상수 이다.
  • 단, 배열이나 객체와 같은 참조타입일 경우 값(프로퍼티)을 수정할 수 있다.

0개의 댓글

관련 채용 정보