var , let, const 차이

developer.do·2023년 4월 29일
0
post-custom-banner

var, let, const

자바스크립트의 var, let, const는 변수를 선언 할 때 사용하는 키워드로 필수로 알아야 하는 개념 중 하나이다.

변수란?

  • 변수(variable)란 데이터를 저장 할 때 쓰이며, 이름이 붙은 저장소이며 선언(declaration)과 할당(assignment)을 할 수 있다.
let message; // message라는 이름으 가진 변수를 선언
message = 'hi'; // message라는 변수에 'hi'라는 문자열을 할당
alert(message) // hi

// 선언과 할당을 동시에 할 수 있다.
let message = hello;

변수 명명 규칙

  • 변수 명은 오로지 문자와 숫자, 기호$, _만 들어갈 수 있다.
  • 첫 글자는 숫자가 될 수 없으며 예약어(let,class,return,function)도 사용 할 수 없다.

바람직한 변수명

  • 간결해야 한다.
  • 명확해야 한다.
  • 최대한 서술적이고 사람이 읽을 수 있어야 한다.
  • 함수의 경우는 동사형으로, 변수,상수의 경우는 명사형

var란?

  • var는 블록 스코프가 없다.
    var로 선언한 변수의 스코프는 전역스코프로, 블록 기준으로 스코프가 생기지 않아 블록 밖에서 접근이 가능하다.
if(1>0){
 var foo = true 
}
alert(foo) // true, var는 코드 블록을 무시하기 때문에, foo는 전역변수가 된다. 따라서 if 문이 끝났어도 변수에 접근 할 수 있다.
// 단 var가 아니라 let을 사용했다면 foo는 if문 안에서만 접근이 가능하다.

단 코드블록이 함수 안에 있다면 var는 함수 레벨 변수가 된다.

function hello(){
if(1>0){
  var foo = "hi";
}
alert(foo) // 정상적으로 작동이 된다. 
}

hello();
alert(foo) // ERROR

let이란?

const란?

  • 상수(const)란 constant의 줄임말로 항상 일정한 값으로 바뀌지 않는다.
  • Javascript에서 변화하지 않는 변수를 선언 할 때는 let대신 const를 사용한다.
  • 즉 바뀔수 없는 값이며 const로 선언한 변수를 우리는 상수(const) 라고 부른다.

따라서 재할당이 불가능하며 변경을 하려고하면 에러가 발생이 된다.

const foo = 1;
foo = 2; // ERROR

const age = 25;
age = age + 1 ;  // ERROR, age라는 상수를 언제든지 불러낼 수 있지만 값을 변경 할 수 는 없다.

대문자 상수

  • 기억하기 힘든 값을 할당하여 별칭으로 사용하며 대문자와 언더바('_')를 사용하여 명명한다.
  • 대문자 상수를 사용하면 오타 낼 확률이 적어지고, 코드 가독성이 증가한다.
const COLOR_RED ="#F00";
const COLOR_GREEN = "#0f0";
const COLOR_BLUE = "#00f";
const COLOR_ORANGE = "#FF7F00";

정리var 선언은 전역 범위 또는 함수 범위이며, let 및 const는 블록 범위이다.

var 변수는 범위 내에서 업데이트하고 다시 선언 할 수 있다. (재선언 O, 재할당 O)

let 변수는 업데이트 할 수 있지만 다시 선언 할 수는 없다. (재선언 X, 재할당 O)

const 변수는 업데이트하거나 다시 선언 할 수 없다. (재선언 X, 재할당 X)

두개의 공통점은 var와 다르게 변수 재선언 불가능하다.

즉, 자바스크립트에서 상수 선언은 const로 한다.
const는 선언 키워드이기 때문에 선언과 할당을 동시에 하지 않으면 에러가 난다. 즉 재할당 불가능하다.

post-custom-banner

0개의 댓글