자바스크립트에서 "const"변수 이해하기
let
가 표시되는 경우입니다.문제가 되는 예는 다음과 같습니다.
let cache = {};
cache.id = 'hello';
// We never reassign cache to a different value.
// It's a reference to the same object.
예,
const
변수는 절대 재할당되지 않기 때문에 실제로는 cache
가 될 수 있습니다.불변성 대 재할당
많은 사람들이
const
선언을 "불변"변수 생성으로 참조합니다. 불변이란 값(객체의 속성 포함)이 절대 업데이트될 수 없음을 의미합니다.그렇다면 a
const
를 사용하여 초기 예제를 시도해 보겠습니다.const cache = {};
cache.id = 'hello';
console.log(cache.id); // will output "hello"
cache
가 이제 변경할 수 없는 상수인 경우 id
속성을 추가하려고 하면 작동하지 않거나 오류가 발생합니다.그러나 해당 예제를 실행하면 완벽하게 작동합니다. 업데이트된 개체에서 검색된 문자열 "hello"가 기록됩니다.
자, 그렇다면
const
가 무언가를 불변으로 선언하지 않으면 어떻게 됩니까? 음, const
는 변수가 새 값으로 재할당되는 것을 방지합니다.다음은 변수를 재할당하는 몇 가지 예입니다.
let cache = {};
cache = { id: 'hello' }; // reassigning variable to a new object
let isSuccess = false;
isSuccess = true; // reassigning variable to false boolean
위의
let
문을 const
로 변경하면 대신 "Uncaught TypeError: Assignment to constant variable"유형 오류가 발생합니다.개체에 대한 속성을 설정하거나 기존 속성을 업데이트하는 것은 재할당이 아닙니다. 변수 값은 여전히 동일한 개체이며 해당 개체의 속성을 업데이트하고 있습니다.
const 사용의 이점
이제
const
와 let
가 어떻게 다른지 이해하셨기를 바랍니다. 하지만 여전히 한 가지 중요한 질문이 있을 수 있습니다.주로 코드의 품질과 귀하 또는 다른 개발자가 코드에서 추론할 수 있는 정보의 양에 달려 있습니다. 예를 들어, 코드베이스에서 한 파일을 살펴보면 다음과 같이 표시됩니다.
let isSuccess = true;
좋아요, 어떤 작업이 성공했는지 여부를 선언하는 변수입니다. 이 경우 값은
const
입니다. 그러나 true
는 또한 이 변수가 나중에 해당 파일의 어디에서나 let
에 재할당될 수 있음을 알려줍니다.다시 확인하기 위해 파일에서
false
의 모든 인스턴스를 검색합니다. 음, 어디에도 재할당된 것이 아니므로 이 변수의 값은 그대로 유지되는 것으로 알고 있습니다isSuccess
.내게는 상수처럼 들립니다. 이 변수가 실제로
true
로 선언된 경우 파일에서 다른 곳을 검색할 필요가 없습니다.이제 몇 달 후에 이 코드를 다시 방문한다고 상상해 보십시오. 파일 아래에 다음을 추가합니다.
isSuccess = false;
어, 당신이 처음에
const
에 대한 이 코드를 isSuccess
로 작성했을 때 나중에 누군가가 코드를 변경할 것이라고 기대하지 않았기 때문에 지금 잠재적으로 버그를 일으켰습니다. 짝수your future self .이것은 특히 여러 개발자가 있는 대규모 코드베이스에서 매우 일반적인 시나리오입니다. 가장 큰 부분은
true
와 const
를 적절하게 사용하면 쉽게 해결할 수 있다는 것입니다.기본값은 let 이지만 필요한 경우 const 사용
일반적으로
let
를 사용하여 모든 새 변수를 선언하고 해당 변수 중 하나를 재할당해야 하는 지점을 발견하면 const
로 변경하는 것이 좋습니다.다음은 둘 다 적절하게 사용하는 방법에 대한 훨씬 더 큰 예입니다.
const cache = {};
let user = {};
let isSuccess = false;
// The `cache` variable is never reassigned a new value.
cache.greeting = `Hello`;
// The `user` variable is not reassigned a new value right now.
user.id = 1;
// Here, we assign `user` and `isSuccess` new values.
user = {};
isSuccess = true;
let
및 const
대신 var
를 사용하여 변수를 선언하는 것은 확실히 패러다임 전환이지만 코드에 더 많은 신뢰를 더할 수 있습니다. 그것을 시도하고 당신이 어떻게 생각하는지 알려주세요.코드를 더욱 개선하는 방법을 배우고 싶습니까? 내 Writing code for your future self 기사를 좋아할 것입니다.
미래의 자신을 위한 코드 작성
써니 싱 ・ 2019년 2월 2일 ・ 4분 읽기
#programming
#tips
#learning
#javascript
Reference
이 문제에 관하여(자바스크립트에서 "const"변수 이해하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sunnysingh/demystifying-const-variables-in-javascript-2jfo텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)