[英]Javascript ES6 export const vs export let
假設我有一個我要導出的變量。 有什么區別
export const a = 1;
VS
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
變量。 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
我認為一旦你導入它,行為是相同的(在你的變量將在源文件外使用的地方)。
唯一的區別是,如果您嘗試在此文件結束之前重新分配它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.