var,let,const 의 특징
공부하면서 let이랑 const는 써봤어도(주로 const), var는 거의 못본것같은데..
예전에 자바를 하려다가 한번 봤나..? 우리..구면이니..?
자바는 예전에 잠깐 공부하다가 너무~~너무너무~~ 재미가 없어서... 한 한달정도 공부하고 그만 둔 기억이 난다...
파이썬이나 자바스크립트, 노드는 재밌게했는데 자바로 시작했다면 나는 프로그래밍 공부를 안했을테지..
TIL정리해둔 건 노션에 많은데, 과제니 야근, 운동을 우선적으로 챙기다보니 글올리는걸 미루게된다..어떡하냐고..
const
상수 선언문이다.
const로 선언된 값은 재할당(immutable)할 수 없다.
재선언도 할 수 없다.
블록스코프이다.
initializer가 필요함. 선언만으로는 상수를 생성할 수 없음.
let
let으로 선언된 값은 재할당 가능하다. 변수 선언문이다.
let apple = "delicious"; //변수선언
apple = "sour"; //재할당
console.log(apple); //sour
같은 변수를 재선언하면 에러발생함. (재선언은 안됨)
let apple = "delicious";
let apple = "sour";
console.log(apple); //syntaxError
블록스코프이다.
global객체를 생성하지않는다.
상위변수내의 하위변수에 영향을주지 않는다.
let apple = "delicious";
{
if (apple === "delicious") {
let apple = "expendsive"; //상위변수 apple과 다른 값(apple = expensive)
console.log(apple);
}
console.log(apple); //상위변수(apple = deliscious)
}
var
초기 자바스크립트에서 변수선언을 위해 사용함.
상위변수가 하위변수에 영향을 줌.
변수 재선언 가능.
let, const와 다르게 initialize를 안해도 선언 가능함.
함수 내에서 var로 선언된 함수는 function scope이고, 선언되지않은 함수는 전역변수이다.(var_가_잘_안보이는_이유.txt)
(아니 이거 엄청 이상하네;; 얘 뭐야..)
function fruits() {
apple = "red"; //global scope
var banana = "yellow"; //function scope
}
fruits();
console.log(apple); //red
console.log(banana); //ReferenceError
MDN읽어보니, 공부할 때 왜 var가 잘 안보였는지 알 것 같다.
let, const 없이 코딩 어떻게해요....;