programing

자바스크립트 ES6 export const vs exportlet

minimums 2023. 9. 20. 20:13
반응형

자바스크립트 ES6 export const vs exportlet

제가 수출하고 싶은 변수가 있다고 가정해 보겠습니다.다른 점이 뭐죠?

export const a = 1;

export let a = 1;

나는 그들 사이의 차이를 이해합니다.const그리고.let, 하지만 당신이 그것들을 수출할 때 차이점은 무엇입니까?

ES6에서.import내보낸 값에 대한 실시간 읽기 전용 뷰입니다.결과적으로, 당신이 할 때.import a from "somemodule";, 할당할 수 없습니다.a자네가 어떻게 선언하든 간에a모듈 내에

그러나 가져온 변수는 라이브 뷰이므로 내보내기의 "원시" 내보내기 변수에 따라 변경됩니다.다음 코드를 고려합니다(아래 참조 기사에서 차용).

//------ lib.js ------
export let counter = 3;
export function incCounter() {
    counter++;
}

//------ main1.js ------
import { counter, incCounter } from './lib';

// The imported value `counter` is live
console.log(counter); // 3
incCounter();
console.log(counter); // 4

// The imported value can’t be changed
counter++; // TypeError

보다시피, 그 차이는 정말로 에 있습니다.lib.js,것은 아니다.main1.js.


요약하자면:

  • 할당할 수 없습니다.import-ed 변수는 모듈에서 해당 변수를 어떻게 선언하든 상관 없습니다.
  • 전통적인let-vs-const시맨틱스는 모듈에서 선언된 변수에 적용됩니다.
    • 변수가 선언된 경우const, 재할당하거나 어느 곳에서도 반등할 수 없습니다.
    • 변수가 선언된 경우let, 모듈에서만 재할당할 수 있습니다(사용자는 재할당할 수 없습니다).변경되면.import-ed 변수는 그에 따라 바뀝니다.

참조 : http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-exported-values

일단 가져오면 동작이 동일하다고 생각합니다(소스 파일 외부에서 변수가 사용되는 위치에서).

유일한 차이점은 이 파일이 끝나기 전에 재할당을 시도하는 것입니다.

언급URL : https://stackoverflow.com/questions/32558514/javascript-es6-export-const-vs-export-let

반응형