Sobes.tech
Junior

Πώς λειτουργούν οι τελεστές import και export στη JavaScript;

sobes.tech AI

Απάντηση από AI

Οι τελεστές import και export χρησιμοποιούνται στη JavaScript για εργασία με modules, επιτρέποντας τον διαχωρισμό του κώδικα σε ανεξάρτητα, επαναχρησιμοποιήσιμα τμήματα και τη διαχείριση των εξαρτήσεων μεταξύ τους.

export

Ο τελεστής export χρησιμοποιείται για την εξαγωγή μεταβλητών, συναρτήσεων, κλάσεων ή άλλων τιμών από ένα module. Η εξαγωγή μπορεί να είναι ονομασμένη ή προεπιλεγμένη.

Ονομασμένη εξαγωγή:

// module.js
export const myVariable = 10;
export function myFunction() { // ... }
export class MyClass { // ... }

Προεπιλεγμένη εξαγωγή: ένα module μπορεί να έχει μόνο μία προεπιλεγμένη εξαγωγή.

// module.js
const defaultValue = 'default value';
export default defaultValue;

import

Ο τελεστής import χρησιμοποιείται για την εισαγωγή τιμών που έχουν εξαχθεί από άλλα modules.

Ονομασμένη εισαγωγή:

// another-module.js
import { myVariable, myFunction } from './module.js';

Εισαγωγή με διαφορετικό όνομα:

// another-module.js
import { myVariable as newVariableName } from './module.js';

Εισαγωγή όλων των ονομάτων που έχουν εξαχθεί ως αντικείμενο:

// another-module.js
import * as moduleAlias from './module.js';
// Πρόσβαση: moduleAlias.myVariable, moduleAlias.myFunction

Εισαγωγή προεπιλεγμένης εξαγωγής:

// another-module.js
import defaultValueName from './module.js';

Εισαγωγή τόσο της ονομασμένης όσο και της προεπιλεγμένης εξαγωγής ταυτόχρονα:

// another-module.js
import defaultValueName, { myVariable, myFunction } from './module.js';

Αρχές λειτουργίας:

  1. Στατική ανάλυση: Ο κινητήρας JavaScript αναλύει τους τελεστές import και export κατά τη διάρκεια της μεταγλώττισης (πριν από την εκτέλεση του κώδικα), δημιουργώντας ένα γράφημα εξαρτήσεων μεταξύ των modules.
  2. "Ζωντανές" συνδέσεις: Οι εισαγόμενες μεταβλητές δεν είναι αντίγραφα των τιμών από το module που τις εξάγει. Είναι "ζωντανές" συνδέσεις (ζωντανές αναφορές) στις μεταβλητές του αρχικού module. Αν αλλάξει η τιμή μιας μεταβλητής στο module που την εξάγει, αυτή η αλλαγή θα είναι ορατή μέσω της εισαγόμενης σύνδεσης.
  3. Μοναδική εκτέλεση: Ο κώδικας κάθε module εκτελείται μόνο μία φορά κατά την πρώτη εισαγωγή αυτού του module. Τα αποτελέσματα της εξαγωγής αποθηκεύονται στην cache και χρησιμοποιούνται σε μελλοντικές εισαγωγές.
  4. Χρήση στο πλαίσιο: Τα modules εκτελούνται στο δικό τους πλαίσιο, απομονωμένα από το παγκόσμιο χώρο. Οι μεταβλητές που δηλώνονται στην ρίζα του module δεν μολύνουν τον παγκόσμιο χώρο, εκτός αν εξάγονται ρητά.