1. let
① let은 블록 영역의 스코프
==> 변수를 선언한 블록 {} 으로 묶은 부분에서만 유효하다.
<script>
function calcSum(n) { //블록 변수 sum 적용 범위 시작
let sum = 0;
for(let i=0; i < n + 1; i++){ //블록 변수 i 적용 범위 시작
sum += i;
} //i 적용 범위 끝
console.log(sum);
} //sum 적용 범위 끝
calcSum(10);
</script>
sum은 함수 calcSum()의 블록 내에서만 사용 가능
i는 for문의 블록 내에서만 사용 가능
※ 전역변수로 선언하려면 let을 쓰지 않고 변수명과 초기값만 할당
<script>
function calcSum(n) {
sum = 0; //전역 변수 sum
for (let i = 1; i< n+1; i++){ //블록 변수 i
sum += i;
}
}
calcSum(10);
console.log(sum);
</script>
② 재할당 가능
<script>
function calcSum(n) {
let sum = 0; //블록변수 sum
for(let i = 0; i < n+1; i++){ //블록변수 i
sum += i;
}
sum = 100; //재할당
console.log(sum);
}
calcSum(10);
</script>

③ 재선언 불가능
<script>
function calcSum(n) {
let sum = 0; //블록변수 sum
for (let i = 0; i < n + 1; i++){ //블록변수 i
sum += i;
}
let sum; //재선언
console.log(sum);
}
calcSum(10);
</script>

2. const
① 상수 변수 선언 시 사용
==> 프로그램 내에서 변하지 않는 값
let과 마찬가지로 블록 영역의 스코프를 가진다.
const currentYear = 2022; //예시
② 재선언, 재할당 불가능
<script>
const currentYear = 2022;
console.log(currentYear);
const currentYear; //재선언 불가
</script>

<script>
const currentYear = 2022;
console.log(currentYear);
currentYear = 2023; //재할당 불가
console.log(currentYear);
</script>

더보기
Do it! HTML+CSS+자바스크립트 웹 표준의 정석 교재를 참고하여 작성했다.
'JAVASCRIPT' 카테고리의 다른 글
| 함수 표현식 (0) | 2023.01.21 |
|---|---|
| 매개변수가 있는 함수 (0) | 2023.01.18 |
| 함수와 var (0) | 2022.12.05 |
| 중첩 while문으로 구구단 만들기 (0) | 2022.11.26 |
| 반복문 (자리 배치도 2) (0) | 2022.11.26 |