JavaScript

JavaScript (JS) é uma linguagem de programação de alto nível e interpretada, usada principalmente para adicionar interatividade a sites e aplicativos web.

JavaScript (JS) is a high-level, interpreted, multi-paradigm programming language that conforms to the ECMAScript specification. It is one of the core technologies of the World Wide Web, alongside HTML and CSS, enabling dynamic and interactive content on websites. JavaScript code can be executed directly by web browsers (client-side scripting) or on servers using environments like Node.js (server-side scripting). Its architecture is event-driven and asynchronous, making it well-suited for handling user interactions and network requests without blocking the main execution thread. Key features include dynamic typing, prototype-based inheritance, first-class functions, and a rich standard library. The V8 JavaScript engine, developed by Google, is a prominent example of a high-performance JS engine used in Chrome and Node.js, employing Just-In-Time (JIT) compilation to improve execution speed. Trade-offs include its dynamic nature, which can lead to runtime errors that might be caught at compile time in statically-typed languages, and its single-threaded nature (though asynchronous patterns mitigate blocking). Modern JavaScript development often involves frameworks and libraries (e.g., React, Angular, Vue) to manage complexity and build sophisticated user interfaces.

        graph LR
  Center["JavaScript"]:::main
  Rel_go_lang["go-lang"]:::related -.-> Center
  click Rel_go_lang "/terms/go-lang"
  Rel_assembly_language["assembly-language"]:::related -.-> Center
  click Rel_assembly_language "/terms/assembly-language"
  Rel_nodejs["nodejs"]:::related -.-> Center
  click Rel_nodejs "/terms/nodejs"
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧠 Teste de conhecimento

1 / 1

🧒 Explique como se eu tivesse 5 anos

É como as instruções mágicas que fazem os sites fazerem coisas quando você clica neles, como mostrar mensagens que aparecem de repente ou fazer animações surgirem, dando vida à web.

🤓 Expert Deep Dive

O modelo de execução do JavaScript é primariamente single-threaded, utilizando um event [loop](/pt/terms/event-loop) para gerenciar operações assíncronas. O event loop verifica continuamente uma fila de mensagens e executa callbacks quando a call stack está vazia. Isso permite operações de I/O não bloqueantes, cruciais para aplicações web. Motores JS modernos (como o V8) utilizam compilação JIT (Just-In-Time), compilando o código JS para código de máquina durante a execução para ganhos de performance. A herança baseada em protótipos difere da herança baseada em classes encontrada em muitas outras linguagens, oferecendo flexibilidade, mas por vezes levando a confusão. O padrão ECMAScript evolui anualmente, introduzindo novas funcionalidades como async/await, classes e módulos. Os trade-offs incluem potenciais problemas de coerção de tipo e os desafios de gerenciar fluxos assíncronos complexos (callback hell, embora mitigado por Promises e async/await). Vulnerabilidades podem surgir de práticas de codificação inseguras, como cross-site scripting (XSS) se a entrada do usuário não for devidamente sanitizada, ou referências diretas a objetos inseguras ao interagir com APIs.

📚 Fontes