Middle
ES Modüllerde modüller nasıl çalışır?
sobes.tech yapay zeka
AI'dan gelen yanıt
ES Modüllerdeki modüller, ithalatlar ve ihracatlar üzerinde statik analiz temelinde çalışır. Tarayıcı veya çalışma ortamı JavaScript dosyalarını ayrıştırır, kodu çalıştırmadan önce modüller arasındaki bağımlılıkları belirler ve bir bağımlılık grafiği oluşturur.
Çalışma prensipleri:
- Statik analiz: İthalatlar ve ihracatlar, kod çalıştırılmadan önce belirlenir, bu da yüklemeyi optimize eder ve hataları erken aşamada tespit eder.
- Benzersiz bağlama: Her ithalat, başka bir modüldeki belirli bir ihracata bağlanır.
- Tekil örnek: Modül, ilk ithalatta yalnızca bir kez çalıştırılır. Tüm sonraki ithalatlar aynı örneğe referans alır.
Modül yaşam döngüsü:
- İnşa: Modülün kaynak kodu ayrıştırılır, ithalatlar ve ihracatlar belirlenir. Modül kabuğu oluşturulur.
- Yükleme: Tüm ithal edilen modüller yüklenir. Bağımlılık önbellekte değilse, ağ veya dosya sistemine istek yapılır.
- Bağlama: İthalatlar ve ihracatlar bağlanır. İthal edilen modüllerden değişkenler ve fonksiyonlar kullanılabilir hale gelir. İthalat çözülemezse, hata fırlatılır.
- Çalıştırma: Modülün kodu çalıştırılır. Tüm ihrac edilen değerler, ithal eden modüller tarafından erişilebilir hale gelir.
Örnekler:
// moduleA.js
export const name = 'Alice';
export function sayHello() {
console.log(`Hello, ${name}!`);
}
// moduleB.js
import { name, sayHello } from './moduleA.js';
console.log(name); // Çıktı: Alice
sayHello(); // Çıktı: Hello, Alice!
CommonJS ile farklar:
| Özellik | ES Modülleri | CommonJS |
|---|---|---|
| Bağlama | Statik | Dinamik |
| Yükleme | Asenkron (tarayıcıda) | Senkron (varsayılan) |
| İhracat | export anahtar kelimesi |
module.exports |
| İthalat | import anahtar kelimesi |
require fonksiyonu |
| Kullanım | Tarayıcı ve Node.js'de (deneysel) | Node.js'de |