<script>: O Elemento SCRIPT

Última atualização: 2026-10-13

<script>O Elemento SCRIPT

Incorpora ou referencia JavaScript para interatividade; coloque em head ou body, frequentemente no fim do body para renderização mais rápida.

CategoriaScripts e Incorporação
Modelo de ConteúdoConteúdo de fluxo
Pais PermitidosQualquer elemento que aceite conteúdo de fluxo
Tag de FechamentoSim — requer fechamento </script> tag
StatusPadrão

📝 Sintaxe

<script src="app.js"></script>

⚙️ Atributos

Este elemento suporta os atributos globais mais os seguintes:

AtributoValorDescrição
srcURL of an external script (inline code ignored when src is set).
typeScript type, default text/javascript (module for ES modules).
asyncExecutes as soon as downloaded, without blocking parsing.
deferRuns after parsing, before DOMContentLoaded.
crossoriginCORS setting for cross-origin scripts.

▶ Exemplo

Edite o código abaixo e veja o resultado em tempo real no playground:

🌐 Suporte de Navegadores

Navegador ChromeChrome EdgeEdge FirefoxFirefox SafariSafari OperaOpera
<script> ✓ v1 ✓ v12 ✓ v1 ✓ v1 ✓ v1
Suportado em todos os navegadores principais
Dica: Use src para arquivos externos; código inline vai entre as tags; async/defer se aplicam apenas a scripts externos.

❓ Perguntas Frequentes

QQual é a diferença entre async e defer de script?
AAmbos carregam scripts externos sem bloquear: async executa assim que o download termina, sem ordem garantida (para scripts independentes, como analytics); defer executa em ordem, após a análise do DOM (para scripts principais que dependem do DOM). Sem nenhum dos dois, o download bloqueia a análise do HTML — em projetos modernos, todo script externo leva pelo menos um dos dois.
Qscript vai no head ou no fim do body?
ACom defer, o head resolve (baixa antes, sem bloquear a renderização); scripts inline ou sem defer que dependem do DOM vão no fim do body. Prática moderna padrão: head + defer — scripts do tipo module já têm comportamento defer por natureza.
QO que há de especial em type='module'?
AAtiva o ES Module: suporte a import/export, modo estrito automático, execução deferida por padrão e escopo independente (sem poluir o global). Scripts tradicionais sem module rodam no escopo global e de forma síncrona. Em projetos novos, padronize com module.
Mais estudos de caso em breve — volte mais tarde.

📚 Tutoriais Relacionados

Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%