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 variableimport
cambia en consecuencia.
-
Si la variable se declara