w3schools importar es6 clases array javascript ecmascript-6 es6-modules

importar - import javascript



Javascript ES6 export const vs export let (2)

Creo que una vez que lo haya importado, el comportamiento es el mismo (en el lugar en que su variable se usará fuera del archivo fuente).

La única diferencia sería si intenta reasignarlo antes del final de este mismo archivo.

Digamos que tengo una variable que quiero exportar. Cuál es la diferencia entre

export const a = 1;

vs

export let a = 1;

Entiendo la diferencia entre const y let , pero cuando los exportas, ¿cuáles son las diferencias?


En ES6, las import son vistas de solo lectura en vivo en valores exportados. Como resultado, cuando import a from "somemodule"; , no puede asignar a a sin importar cómo declare a en el módulo.

Sin embargo, dado que las variables importadas son vistas en vivo , cambian de acuerdo con la variable exportada "en bruto" en las exportaciones. Considere el siguiente código (tomado del artículo de referencia a continuación):

//------ 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

Como puede ver, la diferencia realmente radica en lib.js , no main1.js .

Para resumir:

  • No puede asignar a variables import , sin importar cómo declare las variables correspondientes en el módulo.
  • La semántica tradicional let -vs- const aplica a la variable declarada en el módulo.
    • Si la variable se declara const , no se puede reasignar o rebotar en ningún lado.
    • Si la variable se declara let , solo se puede reasignar en el módulo (pero no el usuario). Si se cambia, la variable import cambia en consecuencia.

Referencia: http://exploringjs.com/es6/ch_modules.html#leanpub-auto-in-es6-imports-are-live-read-only-views-on-exported-values