var,let,const 비교

양갱장군·2020년 8월 22일
0

나와 같은 코린이들에게 생활코딩 자바스크립트 강의는 빛과 소금과도 같지만...
아주 쟈근 단점을 꼽아보자면 무려 6년전(2014년) 자료라 업데이트가 필요한 부분이 있다는 것이다.

대표적으로, 생코에서는 변수 생성 시 var만 사용하고 있으나, 현재(2020년 8월 기준) var보다도 let, const가 자주 사용되고 있다고 한다.

나는 그걸 강의 다~ 듣고서야 깨달아버린 것이고

아무튼 오늘은 var, let, const 의 차이점을 아라보자

1. var


  • var 는 전역/지역변수로 사용될 수 있다.
    • 함수 밖에서 선언될 시 전역변수
    • 함수 내에서 선언될 시 지역변수
  var tester = "hey hi"
  function newFucntion() {
	var hello = "hello";
	}
  console.log(hello); // error: hello is not defined
  • var는 재선언되거나 업데이트 될 수 있다.
var greeter = "say Hi";
var times = 4;
if (times > 3) {
	var greeter = "say Hello instead"; 
	}
console.log(greeter) //"say Hello instead"

2. let


  • let은 블럭{} 단위이다.
let greeting = "say Hi";
let times = 4;
if (time>3) {
	let hello = "say hello instead";
	console.log(hello); // "say hello instead"
	}
console.log(hello) // hello is not defined
  • let은 재선언은 불가능하나 업데이트는 가능하다.
let greeting = "say Hi";
let greeting = "say Hello instead";//error: Identifier 'greeting' has already been declared
let greeting = "say Hi";
if (true) {
   let greeting = "say Hello instead";
   console.log(greeting);//"say Hello instead"
   }
console.log(greeting);//"say Hi"

3. const


  • const 는 블럭{} 단위이다.block scoped
  • const는 업데이트와 재선언 모두 불가능하다.
const greeting = "say Hi";
greeting = "say Hello instead";//error : Assignment to constant variable.
const greeting = "say Hi";
const greeting = "say Hello instead";//error : Identifier 'greeting' has already been declared
  • 그러나, 이 객체의 프로퍼티는 업데이트 될 수 있다.
const greeting = {
	message : "say Hi",
	times : 4
}
const greeting = {
  words : "Hello",
  number : "five"
  }//error :  Assignment to constant variable.
greeting.message = "say Hello instead";

0개의 댓글