Jawaban:
Dalam ES6, importadalah tampilan hanya baca langsung pada nilai yang diekspor. Akibatnya, ketika Anda melakukannya import a from "somemodule";, Anda tidak dapat menetapkan atidak peduli bagaimana Anda mendeklarasikan adalam modul.
Namun, karena variabel yang diimpor adalah tampilan langsung , mereka berubah sesuai dengan variabel yang diekspor "mentah" dalam ekspor. Pertimbangkan kode berikut (dipinjam dari artikel referensi di bawah):
//------ 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
Seperti yang Anda lihat, perbedaannya terletak pada lib.js, bukan main1.js.
Untuk meringkas:
importvariabel -ed, tidak peduli bagaimana Anda mendeklarasikan variabel yang sesuai dalam modul.let-vs- tradisional constberlaku untuk variabel yang dideklarasikan dalam modul.
const, itu tidak dapat dipindahkan atau rebound di mana saja.let, itu hanya dapat ditugaskan kembali dalam modul (tetapi bukan pengguna). Jika diubah, importvariabel -ed akan berubah.
exportdetail kata kunci di sini . Saat ini tidak didukung secara native oleh browser web mana pun.