220924_TIL
오늘 한 일
var, let, const의 변수선언 정리
3가지의 선언은 크게 3가지로 나눠서 공부했다. 선언 / 할당 / 범위 이렇게 3가지.
-
선언 var는 재선언이 가능하다. 그렇기 때문에 예상치 못한 오류들이 많이 발생한다. 요즘엔 var을 사용하지 않고 재선언이 안되는 let을 var 대신 사용한다. const도 재선언은 안된다. 이렇게 재선언이 안된다면 나중에 실수로 변수이름을 중복해서 만들어 오류가 발생하게끔 하는 일을 방지할 수 있다.
-
할당 var와 let은 재할당이 가능하다.
let 이름 = 'Lee';
// 이렇게 선언과 할당을 한 뒤
이름 = 'Kim';
//이렇게 재할당이 가능하다. (var,const)
하지만 const는 재할당이 불가능하다. 여기서 중요한 점은 const 변수에 오브젝트를 담으면 오브젝트 내의 데이터는 변경 가능하다.
const 오브젝트 = { 이름: 'Kim' };
오브젝트.이름 = 'Park'; //가능
이건 엄밀히 말하면 변수를 재할당한 것이 아닌 오브젝트의 참조값 안의 내용을 바꾼 것이다.
완전 변경불가능한 오브젝트를 만들고 싶다면 Object.freeze()라는 자바스크립트 기본함수가 있다. Object.freeze() 소괄호에 오브젝트를 담으시면 불변의 Object가 완성된다. (하지만 오브젝트 내의 오브젝트까지 freeze해주진 않음)
- 범위 변수를 만들면 존재범위가 있다. var 변수는 존재범위가 function let, const 변수는 존재범위가 거의 모든 {중괄호} 라고 보면 된다. (for, if, function 등)
function 함수() {
var 이름 = 'Kim';
console.log(이름); //가능
}
console.log(이름); //에러
▲ 위의 예제처럼 var 변수는 function 내에서 만들면 function 내에서만 쓸 수 있다. function 바깥에서 부르면 없다고 나옴!
if (1 == 1) {
let 이름 = 'Kim';
console.log(이름); //가능
}
console.log(이름); //에러
▲ 위의 예제처럼 let 변수는 {} 중괄호 내에서 만들면 중괄호 내에서만 쓸 수 있다. 중괄호 바깥에서 부르면 없다고 나옴!
이번 주 느낀 점
- 아무리 바빠도 공부는 미루면 안되는데 체력이 부족한 걸 느낀다.
- 알바도 하고 형 가게일을 이번주에 도와주게 되어 어제 TIL을 작성하지 못했다.
- 하지만 핑계일 뿐이다. 돌아오는 주부터 다시 파이팅 하면 된다.
- 시간은 돌릴 수 없고 과거에 연연하면 점점 우울해질 뿐이다.
- 최후에 후회하지 않기 위해선 하루하루 부딪히는 그날 속에서 최선을 다해아한다. 돌아오는 주부터 다시 파이팅할 예정.
댓글남기기