const는 변수를 선언할 때 사용되는 JavaScript 키워드 중 하나입니다. const로 변수를 선언하면, 이후에 변수의 값이 변경되는 것을 방지할 수 있습니다. 그러나 const로 선언한 변수의 값이 변경되는 상황은 다음과 같습니다.
1. const로 선언한 변수가 객체 또는 배열인 경우, 해당 변수가 가리키는 객체나 배열 내부의 값은 변경될 수 있습니다. 즉, 변수의 값은 변경할 수 없지만 객체나 배열 내부의 값은 변경이 가능합니다.
const arr = [1, 2, 3];
arr.push(4); // 가능
arr[0] = 0; // 가능
console.log(arr); // [0, 2, 3, 4]
const obj = { name: 'John', age: 30 };
obj.age = 31; // 가능
console.log(obj); // { name: 'John', age: 31 }
2.const로 선언한 변수가 함수인 경우, 해당 함수는 변수를 변경할 수 있는 코드를 포함할 수 있습니다.
이때는 변수의 값이 아닌 변수에 할당된 함수의 내용이 변경되는 것입니다.
const func = () => {
console.log('Hello');
};
func = () => {
console.log('Goodbye'); // 불가능, TypeError: Assignment to constant variable.
};
func(); // Hello
const obj = {
name: 'John',
sayHello: function() {
console.log('Hello, ' + this.name);
}
};
obj.sayHello(); // Hello, John
obj.sayHello = function() {
console.log('Goodbye, ' + this.name); // 가능
};
obj.sayHello(); // Goodbye, John
그러나 위의 예제와 같이 const로 변수를 선언할 때 값을 변경하는 것은 일반적으로 권장되지 않습니다.
코드의 가독성과 유지보수성을 위해서는 변경이 필요한 경우 let 또는 var 키워드를 사용해야 합니다.
'면접질문' 카테고리의 다른 글
| [Q&A] 동기와 비동기 (0) | 2023.02.14 |
|---|---|
| [Q&A] 변수의 생성과정과 호이스팅에 대해 설명해라 (0) | 2023.02.14 |
| [Q&A] 프로세스, 스레드, 멀티스레드란? (0) | 2023.02.14 |
| [면접질문] NodeJS 및 NestJS 신입 질문모음 (0) | 2023.02.07 |