반응형
const 선언은 블록 범위의 상수를 선언합니다. 상수의 값은 재할당할 수 없으며 다시 선언할 수도 없습니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
// 주의: 상수 선언에는 대소문자 모두 사용할 수 있지만,
// 일반적인 관습은 모두 대문자를 사용하는 것입니다.
// MY_FAV를 상수로 정의하고 그 값을 7로 함
const MY_FAV = 7;
// 에러가 발생함
MY_FAV = 20;
// 7 출력
console.log("my favorite number is: " + MY_FAV);
// 상수를 재선언하려는 시도는 오류 발생 - Uncaught SyntaxError: Identifier 'MY_FAV' has already been declared
const MY_FAV = 20;
// MY_FAV라는 이름은 위에서 상수로 예약되어 있어서 역시 실패함.
var MY_FAV = 20;
// 역시 오류가 발생함
let MY_FAV = 20;
// 블록 범위의 특성을 아는게 중요
if (MY_FAV === 7) {
// 블록 범위로 지정된 MY_FAV 라는 변수를 만드므로 괜찮습니다
// (let으로 const 변수가 아닌 블록 범위를 선언하는 것과 똑같이 동작합니다)
let MY_FAV = 20;
// MY_FAV는 이제 20입니다
console.log('my favorite number is ' + MY_FAV);
// 이 선언은 전역으로 호이스트되고 에러가 발생합니다.
var MY_FAV = 20;
}
// MY_FAV는 여전히 7
console.log('my favorite number is ' + MY_FAV);
// const 선언시에 초기값을 생략해서 오류 발생
const FOO;
// const는 오브젝트에도 잘 동작합니다
const MY_OBJECT = {'key': 'value'};
// 오브젝트를 덮어쓰면 오류가 발생합니다
MY_OBJECT = {'OTHER_KEY': 'value'};
// 하지만 오브젝트의 키는 보호되지 않습니다.
// 그러므로 아래 문장은 문제없이 실행됩니다
MY_OBJECT.key = 'otherValue'; // 오브젝트를 변경할 수 없게 하려면 Object.freeze() 를 사용해야 합니다
// 배열에도 똑같이 적용됩니다
const MY_ARRAY = [];
// 배열에 아이템을 삽입하는 건 가능합니다
MY_ARRAY.push('A'); // ["A"]
// 하지만 변수에 새로운 배열을 배정하면 에러가 발생합니다
MY_ARRAY = ['B']
|
cs |
반응형
'JavaScript' 카테고리의 다른 글
JavaScript 전역 변수의 문제점과 전역 변수 사용 줄이기 (0) | 2023.11.02 |
---|---|
JS 원시값과 객체가 매개변수로 들어왔을 때 (0) | 2023.10.24 |
github api 사용해보기, mjs 파일이란? (0) | 2023.09.13 |
JavaScript 불변성과 Immer 사용하기 (0) | 2021.08.31 |
[Javascript] 기본 이벤트(onBlur, onChange, onClick, onFocus, onSelect, onSubmit) (0) | 2021.06.28 |