Yanıtlar:
ES6'da, importdışa aktarılan değerlerde canlı salt okunur görünümlerdir. Sonuç olarak, bunu yaptığınızda import a from "somemodule";, modülde anasıl beyan ederseniz verin atayamazsınız a.
Ancak, içe aktarılan değişkenler canlı görüntüleme olduğundan, dışa aktarılan "ham" dışa aktarılan değişkene göre değişir. Aşağıdaki kodu göz önünde bulundurun (aşağıdaki referans makaleden ödünç alınmıştır):
//------ 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
Gördüğünüz gibi, fark gerçekten yatıyor lib.js, değil main1.js.
Özetlemek:
importModüldeki karşılık gelen değişkenleri nasıl bildirirseniz verin, -ed değişkenlerine atayamazsınız .letrakip olduğunu- constsemantik modülünde bildirilen değişken için de geçerlidir.
const, herhangi bir yerde yeniden atanamaz veya geri yüklenemez.let, yalnızca modülde yeniden atanabilir (ancak kullanıcı tarafından atanamaz). Değiştirilirse, import-ed değişkeni buna göre değişir.
exportAnahtar kelime ayrıntıları burada . Şu anda herhangi bir web tarayıcısı tarafından yerel olarak desteklenmemektedir.