Yanıtlar:
ES6'da, import
dışa aktarılan değerlerde canlı salt okunur görünümlerdir. Sonuç olarak, bunu yaptığınızda import a from "somemodule";
, modülde a
nası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:
import
Modüldeki karşılık gelen değişkenleri nasıl bildirirseniz verin, -ed değişkenlerine atayamazsınız .let
rakip olduğunu- const
semantik 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.
export
Anahtar kelime ayrıntıları burada . Şu anda herhangi bir web tarayıcısı tarafından yerel olarak desteklenmemektedir.