BaGyun
빠균's 개발노트
BaGyun
전체 방문자
오늘
어제
  • 분류 전체보기 (71)
    • Today I Learned (44)
      • 오류 (8)
      • JavaScript (15)
      • TypeScript (9)
      • NodeJS (0)
      • NestJS (0)
      • Database (3)
      • ORM (1)
      • 알고리즘 (2)
      • 개인공부 (4)
      • Deploy (0)
      • Git (1)
    • 개인프로젝트 (4)
    • 알고리즘 (14)
      • 프로그래머스 (14)
    • 면접질문 (5)
    • 회고 (3)

인기 글

반응형

블로그 메뉴

  • 홈
  • 태그
  • 방명록
hELLO · Designed By 정상우.
BaGyun

빠균's 개발노트

면접질문

[Q&A] Const를 사용했지만, 값을 변경할 수 있는 상황은?

2023. 4. 18. 16:14

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
    '면접질문' 카테고리의 다른 글
    • [Q&A] 동기와 비동기
    • [Q&A] 변수의 생성과정과 호이스팅에 대해 설명해라
    • [Q&A] 프로세스, 스레드, 멀티스레드란?
    • [면접질문] NodeJS 및 NestJS 신입 질문모음
    BaGyun
    BaGyun

    티스토리툴바