假设我有一个要导出的变量。有什么区别
export const a = 1;
对比
export let a = 1;
我了解 和 之间的区别const,let但是当您导出它们时,有什么区别?
const
let
在 ES6 中,imports 是导出值的实时只读视图。结果,当您这样做时,无论您在模块中如何声明import a from "somemodule";,都无法分配给。a``a
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鈥檛 be changed counter++; // TypeError
如您所见,区别实际上在于lib.js,而不是main1.js。
lib.js
main1.js
总结一下:
参考: http ://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports- are-live-read-only-views-on-exported- values