2 ответов:
в ES6,
imports-это живые представления только для чтения для экспортированных значений. В результате, когда вы делаетеimport a from "somemodule";нельзя назначитьaнезависимо от того, как вы объявляетеaв модуле.однако, поскольку импортированные переменные live представления, они изменяются в соответствии с" сырьевой " экспортируемой переменной в экспорте. Рассмотрим следующий код (заимствованный из приведенной ниже справочной статьи):
//------ 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-игрыconstсемантика относится к объявленной переменной в модуле.
- если переменная объявлена
const, его нельзя переназначить или отскочить в любом месте.- если переменная объявлена
let, он может быть переназначен только в модуле (но не у пользователя). Если он будет изменен, тоimport-Эд переменной меняется.
Я думаю, что как только вы импортировали его, поведение будет таким же (в том месте, где ваша переменная будет использоваться вне исходного файла).
единственная разница будет, если вы попытаетесь переназначить его до конца этого самого файла.
Comments