Respostas:
No ES6, imports são visualizações somente leitura ao vivo em valores exportados. Como resultado, quando você o fizer import a from "somemodule";, não poderá atribuir a avocê, independentemente de como você declara ano módulo.
No entanto, como as variáveis importadas são visualizações ao vivo , elas mudam de acordo com a variável exportada "bruta" nas exportações. Considere o seguinte código (emprestado do artigo de referência abaixo):
//------ 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 você pode ver, a diferença realmente reside lib.js, não main1.js.
Para resumir:
importvariáveis a -ed, não importa como você declara as variáveis correspondentes no módulo.let-vs- tradicional constse aplica à variável declarada no módulo.
const, ela não poderá ser reatribuída ou recuperada em nenhum lugar.let, ela poderá ser reatribuída no módulo (mas não no usuário). Se for alterado, a importvariável -ed será alterada de acordo.
exportdetalhes da palavra-chave aqui . Atualmente, ele não é suportado nativamente por nenhum navegador da web.