내보낼 변수가 있다고 가정 해 봅시다. 차이점은 무엇입니까
export const a = 1;
vs
export let a = 1;
나는 사이의 차이 이해 const
와 let
,하지만 당신이 그들을 내보낼 때, 차이점은 무엇입니까?
답변
ES6에서 import
s는 내 보낸 값에 대한 실시간 읽기 전용보기입니다. 결과적으로 수행 할 때 모듈에서 선언 한 방식에 관계없이 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 변수가 그에 따라 변경됩니다.
- 변수가 선언
답변
일단 가져온 후에는 동작이 동일합니다 (변수가 소스 파일 외부에서 사용되는 곳).
유일한 차이점은이 파일이 끝나기 전에 파일을 다시 할당하려는 경우입니다.