1️⃣ const, let, var
var, let, const는 JavaScript에서 변수를 선언하는 세 가지 키워드
이들은 변수의 유효 범위와 재할당 가능 여부의 차이가 있다.
2️⃣ var
var로 선언된 변수는 함수 스코프를 가지며, 블록 스코프를 무시
따라서 if문의 블록 내에서 변수 um을 재선언했지만, 외부에서도 동일한 변수에 접근할 수 있다.
이러한 동작은 호이스팅(hoisting)이라는 특성 때문에 발생
var um = 'Really';
console.log(um); // 출력: Really
var um = 'How'
console.log(um); // 출력: How
if (true) {
var um = 'Human name'; // 변수 재선언
console.log(um); // 출력: Human name
}
console.log(um); // 출력: Human name
3️⃣ let
let은 블록 스코프 변수를 선언
if문 내부에서 선언된 jun 변수는 블록 스코프에만 영향을 미치며, 외부의 jun 변수에는 영향을 주지 않는다.
따라서 블록 외부에서는 처음 선언한 변수 jun에 접근할 수 있다.
let jun = 'Really';
console.log(jun); // 출력: Really
// let jun = 'How' > Uncaught SyntaxError: Identifier 'jun' has already been declared
if (true) {
let jun = 'Human name'; // 블록 스코프 변수 선언
console.log(jun); // 출력: Human name
}
console.log(jun); // 출력: Really
jun = 'How'
console.log(jun); // 출력: How
4️⃣ const
const는 블록 스코프 상수를 선언
const로 선언된 변수는 재할당이 금지되어 값이 고정 > sik 변수에 다른 값을 할당하려고 하면 오류가 발생
하지만 블록 스코프 내에서 동일한 이름의 const 변수를 선언하는 것은 허용
블록 외부에서는 처음 선언한 상수 sik에 접근할 수 있다.
const sik = 'Really';
console.log(sik); // 출력: Really
// const sik = 'How' > Uncaught SyntaxError: Identifier 'sik' has already been declared
if (true) {
const sik = 'Human name'; // 블록 스코프 상수 선언
console.log(sik); // 출력: Human name
}
console.log(sik); // 출력: Really
// sik = 'How' > Uncaught TypeError: Assignment to constant variable.
더 자세한 내용
https://www.howdy-mj.me/javascript/var-let-const
'Javascript' 카테고리의 다른 글
프론트 변조 (0) | 2023.06.14 |
---|---|
toLocaleString() (0) | 2023.06.14 |
url params (0) | 2023.06.14 |
[Javascript] truthy, falsy (0) | 2023.06.14 |
JavaScript - Export와 Import (5) | 2023.05.16 |
댓글