--- title: JavaScript slug: Web/JavaScript tags: - Aprender - JavaScript - Landing - Página Landing - 'l10n:priority' translation_of: Web/JavaScript ---
{{JsSidebar}}

JavaScript (JS) é uma linguagem de programação compilada simples, interpretada ou "just-in-time" com {{Glossary("First-class Function", "funções de primeira classe")}}. Embora seja mais conhecida coma a linguagem de scripting para as páginas da Web, também é utilizada em muitos ambientes além de navegadores (inglês), tais como Node.js, Apache CouchDB e Adobe Acrobat. JavaScript é uma linguagem dinâmica, {{Glossary("Prototype-based programming", "baseada em protótipos")}} e que suporta os paradigmas de programação orientada a objetos, imperativa e declarativa (incluindo programação funcional). Leia mais sobre o JavaScript.

Esta secção do site é dedicada à própria linguagem JavaScript, e não a partes específicas das páginas da Internet ou outros ambientes. Para informação sobre {{Glossary("API","APIs")}} específicas para as páginas da Web, por favor, consulte APIs da Web e DOM.

O padrão para JavaScript é ECMAScript. Em 2012, todos os navegadores modernos são totalmente compatíveis com a versão ECMAScript 5.1. Navegadores mais antigos suportam pelo menos ECMAScript 3. No dia 17 de junho de 2015, ECMA International publicou a sexta versão principal de ECMAScript, cujo nome oficial é ECMAScript 2015, e inicialmente era chamada ECMAScript 6 ou ES6. Desde então, as normas de ECMAScript são lançadas anualmente. Esta documentação refere-se à última proposta, que atualmente é ECMAScript 2018.

Não faça confusão entre JavaScript e a linguagem de programação Java. Tanto "Java" como "JavaScript" são marcas ou marcas registadas da Oracle nos E.U.A. e outros países. Contudo, estas linguagens de programação têm muitas diferenças na sua sintaxe, semânticas e utilização.

Tutoriais

Aprender a programar em JavaScript com guias e tutorials.

Para principiantes absolutos

Dirija-se ao nosso tópico sobre JavaScript se quer aprender esta linguagem mas não tem experiência alguma em programação. Seguem-se os módulos disponíveis:

JavaScript - primeiros passos
Responde a questões fundamentais como "o que é JavaScript?", "que aspeto tem a linguagem?", e "o que pode fazer?", além de discutir funcionalidades chave JavaScript como variáveis, strings, números e arrays.
JavaScript - elementos constituintes
Continua a abordagem às principais funcionalidades de JavaScript, tendo como foco os blocos de código utilizados mais habitualmente, tais como instruções condicionais, ciclos, funções e eventos.
Introducing JavaScript objects
The object-oriented nature of JavaScript is important to understand if you want to go further with your knowledge of the language and write more efficient code, therefore we've provided this module to help you.
Asynchronous JavaScript
Discusses asynchronous JavaScript, why it is important, and how it can be used to effectively handle potential blocking operations such as fetching resources from a server.
Client-side web APIs
Explores what APIs are, and how to use some of the most common APIs you'll come across often in your development work.

Guia de JavaScript

Guia de JavaScript
Um guia muito detalhado de JavaScript, apropriado para pessoas com experiência em JavaScript ou noutra linguagem.

Intermediário

Reintrodução ao JavaScript
Uma visão geral para quem acha que conhece o JavaScript.
Estrutura de Dados no JavaScript
Uma visão geral das estruturas de dados disponíveis no JavaScript.
Equality comparisons and sameness
JavaScript provides three different value-comparison operations: strict equality using ===, loose equality using ==, and the {{jsxref("Global_Objects/Object/is", "Object.is()")}} method.
Closures

A closure is the combination of a function and the lexical environment within which that function was declared.

Avançado

Inheritance and the prototype chain
Explanation of the widely misunderstood and under-estimated prototype-based inheritance.
Strict mode
Strict mode defines that you can not use any variable before initializing it. It is a restricted variant of ECMAScript 5, for faster performance and easier debugging.
JavaScript typed arrays
JavaScript typed arrays provide a mechanism for accessing raw binary data.
Memory Management
Memory life cycle and garbage collection in JavaScript.
Concurrency model and Event Loop
JavaScript has a concurrency model based on an "event loop".

Referência

Explore a documentação completa de refrência de JavaScript.

Standard objects
Get to know standard built-in objects {{jsxref("Array")}}, {{jsxref("Boolean")}}, {{jsxref("Date")}}, {{jsxref("Error")}}, {{jsxref("Function")}}, {{jsxref("JSON")}}, {{jsxref("Math")}}, {{jsxref("Number")}}, {{jsxref("Object")}}, {{jsxref("RegExp")}}, {{jsxref("String")}}, {{jsxref("Map")}}, {{jsxref("Set")}}, {{jsxref("WeakMap")}}, {{jsxref("WeakSet")}}, and others.
Expressions and operators
Learn more about the behavior of JavaScript's operators {{jsxref("Operators/instanceof", "instanceof")}}, {{jsxref("Operators/typeof", "typeof")}}, {{jsxref("Operators/new", "new")}}, {{jsxref("Operators/this", "this")}}, the operator precedence, and more.
Statements and declarations
Learn how {{jsxref("Statements/do...while", "do-while")}}, {{jsxref("Statements/for...in", "for-in")}}, {{jsxref("Statements/for...of", "for-of")}}, {{jsxref("Statements/try...catch", "try-catch")}}, {{jsxref("Statements/let", "let")}}, {{jsxref("Statements/var", "var")}}, {{jsxref("Statements/const", "const")}}, {{jsxref("Statements/if...else", "if-else")}}, {{jsxref("Statements/switch", "switch")}}, and more JavaScript statements and keywords work.
Funções
Aprenda como trabalhar com funções do JavaScript para desenvolver suas aplicações.

Ferramentas e recursos

Ferramentas úteis para escrever e depurar o seu código JavaScript.

Ferramentas de Desenvolvimento do Firefox
Scratchpad, Consola da Web, JavaScript Profiler, Debugger, e muito mais.
JavaScript Shells
A JavaScript shell allows you to quickly test snippets of JavaScript code.
Learn JavaScript
An excellent resource for aspiring web developers — Learn JavaScript in an interactive environment, with short lessons and interactive tests, guided by automated assessment. The first 40 lessons are free, and the complete course is available for a small one-time payment.
TogetherJS
Collaboration made easy. By adding TogetherJS to your site, your users can help each other out on a website in real time!
Stack Overflow
Dúvidas no Stack Overflow marcadas com "JavaScript".
JavaScript versions and release notes
Browse JavaScript's feature history and implementation status.
JSFiddle
Edit JavaScript, CSS, HTML and get live results. Use external resources and collaborate with your team online.
Plunker
Plunker is an online community for creating, collaborating on and sharing your web development ideas. Edit your JavaScript, CSS, HTML files and get live results and file structure.
JSBin

JS Bin is an open source collaborative web development debugging tool.

Codepen

Codepen is another collaborative web development tool used as a live result playground.

StackBlitz

StackBlitz is another online playground/debugging tool, which can host and deploy full stack applications using React, Angular, etc.