La sentència export s'utilitza per exportar funcions, objectes o valors primitius d'un fitxer donat (o mòdul) per a que els puguin fer servir altres programes amb la sentència import
.
Els mòduls exportats estan sempre strict mode tan si es declaren així com si no. La sentència export no es pot fer servir en mòduls incrustats (embedded).
Sintaxi
export nom1, nom2, ..., nomN; export default nom1
nomN
- Propietat, funció, o objecte que s'ha d'exportar (de manera que es pot importar a través de
import
en un altre script).
Descripció
Hi ha dos tipus diferents d'export:
- Exportacions nominals (una o més per mòdul):
export myFunction; // exporta una funció declarada anteriorment export const foo = Math.sqrt(2); // exporta una constant export let name1, name2, …, nameN; export let name1 = …, name2 = …, …, nameN; export function functionName(){...} export class ClassName {...}
- Exportacions per defecte (una per mòdul):
export default expression; export default function (…) { … } // també class, function* export default function name1(…) { … } // també class, function* export { name1 as default, … };
Les exportacions amb nom són útils per exportar diversos valors. Durant la importació, un serà capaç d'utilitzar el mateix nom per referir-se al valor corresponent.
Sobre la exportació per defecte, només pot haver-n'hi una per mòdul. Una exportació per defecte pot ser una funció, una classe un objecte o qualsevol altra cosa. Aquest valor es considerarà el principal valor exportat, ja que serà el més fàcil d'importar.
Exemples
Usant les exportacions nominals
En el mòdul podem fer servir el codi següent:
// "modul.js"
export function cub(x) {
return x * x * x;
}
const foo = Math.PI + Math.SQRT2;
export foo;
Així, en un altre mòdul podem tenir:
import { cub, foo } from 'modul.js';
console.log(cub(3)); // 9
console.log(foo); // 4.555806215962888
Usant l'exportació per defecte
Si volem exportar un únic valor o tenir un valor per defecte per al nostre mòdul podem fer::
// "modul.js"
var function cub(x) {
return x * x * x;
}
export default cub;
Així, en un altre mòdul podem importar directament:
import laFuncio from 'modul';
console.log(laFuncio(3)); // 9
Especificacions
Especificació | Estat | Comentaris |
---|---|---|
ECMAScript 2015 (6th Edition, ECMA-262) The definition of 'Imports' in that specification. |
Standard | Definició inicial |
Compatibilitat amb navegadors
Característica | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Suport bàsic | No support | No support | No support | No support | No support |
Característica | Android | Chrome per Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Suport bàsic | No support | No support | No support | No support | No support | No support |
Vegeu també
import
- ES6 in Depth: Modules, Hacks blog post per Jason Orendorff
- Axel Rauschmayer's book: "Exploring JS: Modules"