JavaScript - let, const and var

Big Jay·2022년 8월 13일
0

JavaScript

목록 보기
4/8

과거 javascript에서의 변수 선언은 var 하나였으나, ES6가 나온 후는 let과 const를 사용한다.

varletconst
변수 재선언가능불가능불가능
값 재할당가능가능불가능
(읽기 전용)
호이스팅된다된다된다
scopefunction scopeblock scope
function scope
block scope
function scope

변수 재선언

  1. var
var name = "jay"
var name = "park"

console.log(name) // park
  1. let
let name = "jay"
let name = "park" //Uncaught SyntaxError: Identifier 'name' has already been declared
  1. const
const name = "jay"
const name = "park" //Uncaught SyntaxError: Identifier 'name' has already been declared

변수 값 재할당

  1. var
var name = "jay"
name = "park"

console.log(name) // park
  1. let
let name = "jay"
name = "park"

console.log(name) // park
  1. const
const name = "jay"
name = "park" //TypeError: "name" is read-only

호이스팅

링크 참조

block scope

block scope는 {}로 표시되는 하나의 범위이다. (if, for, while 등등)

if(true){ // block scope
  var a = "a"
  let b = "b"
  const c = "c"
} // block scope

console.log(a) // a
console.log(b) // ReferenceError: b is not defined
console.log(c) // ReferenceError: c is not defined

위 예제에서 보면 var의 경우 block scope 밖에서도 확인이 되는 반면에 let과 const는 확인할 수 없다. var는 block scope를 가지지 않고 function scope를 갖는다.

function exam(){ // function scope
  var a = "a"
  let b = "b"
  const c = "c"
}// function scope

// 전부 ReferenceError 발생
console.log(a) 
console.log(b)
console.log(c)

요약

  1. var은 쓰지 말고 const를 사용하자.
  2. 만약 변수의 값이 계속 변경되는 것이라면 let을 사용하자.
profile
안녕하세요.

0개의 댓글