타입 선언
var: 권장 하지는 않지만 중복 된 이름으로 값을 변경 할 수 있는 변수 선언이 가능 (잘 사용 되지 않음)
var 변수의 영역은 블록 안으로 제한되지 않음 (함수 레벨 스코프)

var topic = "자바스크립트"
// JavaScript에서 빈 문자열 (""), null, undefined, 0, NaN, false 외의 모든 값은 truthy(참으로 간주)로 평가
if (topic){
var topic = "리액트"
console.log('블록',topic)
}
console.log('글로벌',topic)
<실행 결과>
블록 리액트
글로벌 리액트
함수 레벨 스코프


블록 안에서 선언되어도 블록 바깥에서 사용할 수 있는 모습
(기존 var에서 새로 추가 된 것)
let: 값을 변경 할 수 있는 변수 선언시 사용 (variable values) - 새로운 var이라 생각
var과 다른 점은 중복 선언이 불가능 하다는 것
let을 쓰면 구문적 변수 영역 규칙을 적용할 수 있음
const: 값을 변경 할 수 없는 상수 선언시 사용 (constant values)
let과 const 는 재선언과 호이스팅을 허용하지 않음 (블록 레벨 스코프)

var topic = "자바스크립트"
// JavaScript에서 빈 문자열 (""), null, undefined, 0, NaN, false 외의 모든 값은 truthy(참으로 간주)로 평가
if (topic){
let topic = "리액트"
console.log('블록',topic)
}
console.log('글로벌',topic)
<실행 결과>
블록 리액트
글로벌 자바스크립트
블록 레벨 스코프

블록 레벨 스코프 이기 때문에 중첩된 내부 블록 에서는 사용가능하지만 외부 블록에서는 사용이 불가능한 모습
'Development > JavaScript' 카테고리의 다른 글
| 문자열 연결, 호이스팅 (0) | 2023.09.02 |
|---|---|
| JavaScript문법 Destructuring 구조분해 할당 (0) | 2023.01.15 |
| JavaScript 스프레드 연산자, 나머지 연산자, === 연산자 (0) | 2023.01.15 |
| JavaScript 클래스 ES6 vs ES7 (0) | 2023.01.15 |
| export& import 모듈화 (0) | 2023.01.15 |