• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

변수 선언시 const로 작성하는 이유가 있나요?

23.12.04 22:14 작성 조회수 304

0

제가 반응형 데이터에 대한 이해가 부족한 거일수도 있지만

const로 작성을 하면 상수 취급이 되어서 데이터를 한번 선언하면 변경할수 없다고 알고 있는데,

vue3에서는 const data = ref('') 또는 const obj = reactive({})등으로 변수 선언을 하더라고요

제가 알던 지식으로는 let data = ref('') 또는 let obj = reactive({})등으로 변수를 선언해야 할거 같은데

const로 반응형데이터를 선언했을때 어떻게 let과 같이 변수의 값이 바뀌는지 궁금합니다.(반응형데이터라서...?)

답변 1

답변을 작성해보세요.

0

안녕하세요 🙂

포인트를 체크해 보자면 반응형 데이터에 대한 이해 보다 자바스크립트 언어에 대한 이해를 우선 체크해 보시는 것을 권장드립니다.

두 가지로 나누어서 답변 드리겠습니다.

질문1) const로 반응형데이터를 선언했을때 어떻게 let과 같이 변수의 값이 바뀌는지 궁금합니다.

이 질문에 대한 답변은 우선 Vue와 아무런 관계가 없습니다. 프로그래밍 언어의 Primitive Type vs Reference Type 과 관련이 있습니다. 정리하면 const는 상수, let은 변수 맞습니다. 알고계신 것처럼 const로 선언된 상수는 "값(value)"을 변경할 수 없습니다. 다만 상수에 객체가 할당 되었다면 값은 변경하지 못해도 해당 객체의 속성은 변경할 수 있겠죠?

const obj = { name: 'gymcoding' };

obj.name = 'coding';      // 속성 변경 가능
obj = { name: 'coding' }; // 값의 변경 불가

(PS. 만약 위 답변이 이해가 되지 않는다면 제 자바스크립트 강의 배열, 객체 파트를 보시는 것을 권장드립니다. 유튜브에 무료로 업로드했습니다. 자바스크립트 강의)

질문2) vue3에서는 const data = ref('') 또는 const obj = reactive({})등으로 변수 선언을 하더라고요

이 질문에 대한 답변도 우선 Vue와 아무런 관계가 없습니다. 변수 선언시 const로 선언하면 값을 변경할 수 없습니다. 그리고 let을 선언하면 값을 변경할 수 있습니다. (이것은 잘 알고 계실것입니다.)

그러면 여기서 잠시 생각해 보겠습니다.

  • Vue로 개발시에 변수의 "값(value)"을 변경해야 할 일이 자주 있을까요?

  • Vue 뿐만 아니라 자바스크립트 프로그래밍시 "값(value)"을 변경해야 할 일이 자주 있을까요?

(참고. 질문1을 제대로 이해하지 않으셨다면 이해가 안될 것입니다)

프로그래밍시에 값을 변경하는일은 많지 않습니다. 아니 변경하면 안되는 경우가 많습니다. 그렇기 때문에 안전상 또는 성능상의 이점을 가져가기 위해 제 코드 스타일상 const 를 사용한 것입니다.

 

(참고로 저는 자바스크립트 프로그래밍시 var는 아예 사용안하고, let은 거의 사용 안하는 것 같아요. 제 스타일이니 참고만해주세요)