Disons que j'ai une variable que je veux exporter. Quelle est la différence entre
export const a = 1;
contre
export let a = 1;
Je comprends la différence entre const
et let
, mais lorsque vous les exportez, quelles sont les différences?
Dans ES6, import
s sont des vues en lecture seule en direct sur les valeurs exportées. Par conséquent, lorsque vous exécutez import a from "somemodule";
, vous ne pouvez pas affecter à a
, quelle que soit la façon dont vous déclarez a
dans le module.
Cependant, étant donné que les variables importées sont des vues en direct , elles changent en fonction de la variable exportée "brute" dans les exportations. Considérez le code suivant (emprunté à l'article de référence ci-dessous):
//------ 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
Comme vous pouvez le constater, la différence réside vraiment dans lib.js
et non pas main1.js
.
Pour résumer:
import
- ed, quelle que soit la façon dont vous déclarez les variables correspondantes dans le module.let
- vs -const
s'applique à la variable déclarée dans le module. const
, elle ne peut être réaffectée ni rebondie nulle part.let
, elle ne peut être réaffectée que dans le module (mais pas à l'utilisateur). Si elle est modifiée, la variable import
- ed change en conséquence.Je pense qu'une fois que vous l'avez importé, le comportement est le même (à la place, votre variable sera utilisée en dehors du fichier source).
La seule différence serait si vous essayez de le réaffecter avant la fin de ce fichier.