Junior
Como funcionam os operadores import e export em JavaScript?
sobes.tech IA
Resposta da IA
Os operadores import e export são usados para trabalhar com módulos em JavaScript, permitindo dividir o código em partes independentes, reutilizáveis e gerenciar dependências entre eles.
export
O operador export é usado para exportar variáveis, funções, classes ou outros valores de um módulo. A exportação pode ser nomeada ou padrão.
Exportação nomeada:
// module.js
export const myVariable = 10;
export function myFunction() { // ... }
export class MyClass { // ... }
Exportação padrão: um módulo pode ter apenas uma exportação padrão.
// module.js
const defaultValue = 'default value';
export default defaultValue;
import
O operador import é usado para importar valores exportados por outros módulos.
Importação nomeada:
// another-module.js
import { myVariable, myFunction } from './module.js';
Importação com outro nome:
// another-module.js
import { myVariable as newVariableName } from './module.js';
Importar todos os nomes exportados como um objeto:
// another-module.js
import * as moduleAlias from './module.js';
// Acesso: moduleAlias.myVariable, moduleAlias.myFunction
Importar exportação padrão:
// another-module.js
import defaultValueName from './module.js';
Importar tanto a exportação nomeada quanto a padrão ao mesmo tempo:
// another-module.js
import defaultValueName, { myVariable, myFunction } from './module.js';
Princípios de funcionamento:
- Análise estática: O motor JavaScript analisa os operadores
importeexportdurante a compilação (antes da execução do código), criando um gráfico de dependências entre os módulos. - "Vínculos" vivos: Variáveis importadas não são cópias dos valores do módulo exportador. São "vínculos" vivos (referências vivas) às variáveis do módulo original. Se o valor de uma variável no módulo exportador mudar, essa mudança será visível através do vínculo importado.
- Execução única: O código de cada módulo é executado apenas uma vez na primeira importação desse módulo. Os resultados da exportação são armazenados em cache e utilizados em importações subsequentes.
- Uso em contexto: Os módulos são executados em seu próprio contexto, isolado do escopo global. As variáveis declaradas na raiz do módulo não poluem o espaço global, a menos que sejam explicitamente exportadas.