diff options
Diffstat (limited to 'files/ca/web/javascript/reference/statements/export')
-rw-r--r-- | files/ca/web/javascript/reference/statements/export/index.html | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/files/ca/web/javascript/reference/statements/export/index.html b/files/ca/web/javascript/reference/statements/export/index.html new file mode 100644 index 0000000000..fcf4f6283e --- /dev/null +++ b/files/ca/web/javascript/reference/statements/export/index.html @@ -0,0 +1,159 @@ +--- +title: export +slug: Web/JavaScript/Reference/Statements/export +translation_of: Web/JavaScript/Reference/Statements/export +original_slug: Web/JavaScript/Referencia/Sentencies/export +--- +<div>{{jsSidebar("Statements")}}</div> + +<p>La<strong> </strong>sentència <strong>export</strong> s'utilitza per exportar funcions, objectes o valors primitius d'un fitxer donat (o <em>mòdul</em>) per a que els puguin fer servir altres programes amb la sentència {{jsxref("Statements/import", "import")}}.</p> + +<p>Els mòduls exportats estan sempre {{jsxref("Strict_mode","strict mode", "", 1)}} tan si es declaren així com si no. La sentència export no es pot fer servir en mòduls incrustats (embedded).</p> + +<h2 id="Sintaxi">Sintaxi</h2> + +<pre class="syntaxbox notranslate">export <em>nom1</em>, <em>nom2</em>, ..., <em>nomN</em>; +export default <em>nom1</em> </pre> + +<dl> + <dt><code>nomN</code></dt> + <dd>Propietat, funció, o objecte que s'ha d'exportar (de manera que es pot importar a través de <code><a href="/en-US/docs/Web/JavaScript/Reference/Statements/import">import</a></code> en un altre script).</dd> +</dl> + +<h2 id="Descripció">Descripció</h2> + +<p>Hi ha dos tipus diferents d'export:</p> + +<ul> + <li>Exportacions nominals (una o més per mòdul): + <pre class="brush: js notranslate">export myFunction; // exporta una funció declarada anteriorment +export const foo = Math.sqrt(2); // exporta una constant +export let <var>name1</var>, <var>name2</var>, …, <var>nameN</var>; +export let <var>name1</var> = …, <var>name2</var> = …, …, <var>nameN</var>; +export function functionName(){...} +export class ClassName {...}</pre> + </li> + <li>Exportacions per defecte (una per mòdul): + <pre class="notranslate">export default <em>expression</em>; +export default function (…) { … } // també class, function* +export default function name1(…) { … } // també class, function* +export { <var>name1</var> as default, … };</pre> + </li> +</ul> + +<p>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.</p> + +<p>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.</p> + +<h2 id="Exemples">Exemples</h2> + +<h3 id="Usant_les_exportacions_nominals">Usant les exportacions nominals</h3> + +<p>En el mòdul podem fer servir el codi següent:</p> + +<pre class="brush: js notranslate">// "modul.js" +export function cub(x) { + return x * x * x; +} +const foo = Math.PI + Math.SQRT2; +export foo; +</pre> + +<p>Així, en un altre mòdul podem tenir:</p> + +<pre class="brush: js notranslate">import { cub, foo } from 'modul.js'; +console.log(cub(3)); // 9 +console.log(foo); // 4.555806215962888</pre> + +<h3 id="Usant_lexportació_per_defecte">Usant l'exportació per defecte</h3> + +<p>Si volem exportar un únic valor o tenir un valor per defecte per al nostre mòdul podem fer::</p> + +<pre class="brush: js notranslate">// "modul.js" +var function cub(x) { + return x * x * x; +} +export default cub;</pre> + +<p>Així, en un altre mòdul podem importar directament:</p> + +<pre class="brush: js notranslate">import laFuncio from 'modul'; +console.log(laFuncio(3)); // 9 +</pre> + +<h2 id="Especificacions">Especificacions</h2> + +<table class="standard-table"> + <tbody> + <tr> + <th scope="col">Especificació</th> + <th scope="col">Estat</th> + <th scope="col">Comentaris</th> + </tr> + <tr> + <td>{{SpecName('ES6', '#sec-imports', 'Imports')}}</td> + <td>{{Spec2('ES6')}}</td> + <td>Definició inicial</td> + </tr> + </tbody> +</table> + +<h2 id="Compatibilitat_amb_navegadors">Compatibilitat amb navegadors</h2> + +<p>{{CompatibilityTable}}</p> + +<div id="compat-desktop"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Chrome</th> + <th>Firefox (Gecko)</th> + <th>Internet Explorer</th> + <th>Opera</th> + <th>Safari</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<div id="compat-mobile"> +<table class="compat-table"> + <tbody> + <tr> + <th>Característica</th> + <th>Android</th> + <th>Chrome per Android</th> + <th>Firefox Mobile (Gecko)</th> + <th>IE Mobile</th> + <th>Opera Mobile</th> + <th>Safari Mobile</th> + </tr> + <tr> + <td>Suport bàsic</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + <td>{{CompatNo}}</td> + </tr> + </tbody> +</table> +</div> + +<h2 id="Vegeu_també">Vegeu també</h2> + +<ul> + <li>{{jsxref("Statements/import", "import")}}</li> + <li><a href="https://hacks.mozilla.org/2015/08/es6-in-depth-modules/">ES6 in Depth: Modules</a>, Hacks blog post per Jason Orendorff</li> + <li><a href="http://exploringjs.com/es6/ch_modules.html">Axel Rauschmayer's book: "Exploring JS: Modules"</a></li> +</ul> |