반응형
자바스크립트 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
반응형
'programing' 카테고리의 다른 글
mysql 타임스탬프를 실제 날짜와 시간으로 변환하시겠습니까? (0) | 2023.09.20 |
---|---|
내 sqli가 죽거나, 죽거나, 죽어야 합니까? (0) | 2023.09.20 |
우분투 14.04에 레일이 있는 MariaDB 10.1 및 MySQL2 보석 (0) | 2023.09.20 |
리눅스에 파이썬 두 가지 버전이 있습니다.2.7을 기본값으로 설정하는 방법 (0) | 2023.09.20 |
점 표기법 및 큰따옴표를 사용한 Oracle 12c JSON 쿼리 문제 (0) | 2023.09.20 |