Ответы:
В ES6 imports - это представления в режиме реального времени только для чтения для экспортируемых значений. В результате, когда вы делаете import a from "somemodule";, вы не можете назначить, aнезависимо от того, как вы объявляете aв модуле.
Однако, поскольку импортируемые переменные являются оперативными представлениями, они изменяются в соответствии с «необработанной» экспортируемой переменной в экспорте. Рассмотрим следующий код (заимствован из справочной статьи ниже):
//------ 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
Как вы видите, разница действительно заключается lib.js, а не main1.js.
Подвести итоги:
import-ed переменным, независимо от того, как вы объявляете соответствующие переменные в модуле.let-vs- constприменяется к объявленной переменной в модуле.
const, она нигде не может быть переназначена или переназначена.let, она может быть переназначена только в модуле (но не в пользователе). Если это изменяется, importпеременная -ed изменяется соответственно.
exportключевые слова здесь . В настоящее время он не поддерживается ни одним из веб-браузеров.