자바스크립트에서는 변수를 선언하는 방법이 3가지가 있다.
1. const
- const는 상수를 뜻하며, 변하고 싶지 않은 값들을 만들 때 쓰인다.
2. var
- let보다 var가 먼저 나옴
- 문제점
1) 자바스크립트에서 호이스팅을 할 때 변수도 선언하고 변수의 초기화를 같이 시켜버린다.
값 할당은 나중에 그 줄 가서 할당을 한다.
2) 변수라고 선언도 안했는데 실행이 됨
ex) console.log(a)
a = 1
var a
console.log(a) 하면
실행) undefined
1 이 됨.
3) 전역변수와 지역변수의 개념이 확실하지 않음.
4) 함수만 지역변수로 호이스팅이 되고(함수만 제외하고) for문 if문 안에서 쓴 것들 다 전역변수로 올림
5) 변수의 이름이 중복이 되면 안되는데 var를 쓰면 자바스크립트에서는 허용이 됨
- 최근 자바스크립트에서는 var를 지양하고 let을 권장하는 추세
3. let
- 2015년 자바스크립트 ES6 버전 업그레이드 때부터 let이 나옴
- let도 호이스팅이 됨.
- let이라는 변수는 Temporal Death Zone (TDZ)을 하나 만들어서 a가 호이스팅으로 기억이 된 건 알겠어,
하지만 a선언문이 나오기 전까지 너는 a에 접근을 할 수 없어. 일시적으로 너는 죽은 zone이야라는 것을 만들어 줌.
호이스팅
- 호이스팅은 함수가 실행되기 전에 안에 있는 변수들을 범위의 최상단으로 끌어올리는 것
- 코드는 아래에서 위로 흘러감.
전역변수
- 블락 밖에서 선언을 한 어디서든 쓰일 수 있는 변수
ex) var a = 2
지역변수
- 지역변수 블락 {} 안에서 선언된 변수, 블락 안에서만 쓸 수 있음
ex) function foo () {
var b = 1
자바스크립트
- 굉장히 느슨한 언어 (모든걸 용서해 버리는 언어)
참고 : 코딩알려주는누나
'Front-end > JavaScript' 카테고리의 다른 글
연산자 (0) | 2022.03.22 |
---|---|
자바스크립트에서의 데이터의 종류 (0) | 2022.03.21 |
JavaScript 주석 표기법 (0) | 2022.03.20 |
Zero-base Numbering (0) | 2022.03.20 |
콘솔(console) (0) | 2022.03.17 |