エクスポートしたい変数があるとしましょう。違いは何ですか
export const a = 1;
対
export let a = 1;
const
との違いは理解できlet
ますが、エクスポートするとどのような違いがありますか?
エクスポートしたい変数があるとしましょう。違いは何ですか
export const a = 1;
対
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 変数が変更されます。インポートしたら、動作は同じだと思います(変数がソースファイルの外部で使用される場所で)。
唯一の違いは、このファイルが終了する前に再割り当てしようとした場合です。