JavaScript é a única linguagem de programação executada nativamente em navegadores da web, o que o torna essencial para qualquer pessoa que crie aplicativos da web. Em 2026, o JavaScript também alimenta servidores (Node.js), aplicativos móveis (React Native) e aplicativos de IA. Este guia completo para iniciantes leva você do zero até a escrita de JavaScript real.
📋 Table of Contents
Por que aprender JavaScript?
- Somente idioma do navegador— necessário para qualquer interatividade na web
- Capacidade full-stack– front-end + back-end + celular
- Adequado para iniciantes— é executado no seu navegador, feedback instantâneo
- Enorme mercado de trabalho– linguagem mais comum em listas de empregos na web
- Ecossistema enorme– npm tem mais de 2 milhões de pacotes
Primeiros passos (não é necessária instalação)
Abra seu navegador → pressione F12 → clique na guia “Console” → você está escrevendo JavaScript!
// Your very first JavaScript
console.log("Hello, JavaScript!"); // prints to console
// Calculate in the console
console.log(2 + 2); // 4
console.log(10 * 5); // 50
console.log(Math.sqrt(16)); // 4
Variáveis e tipos de dados
// Three ways to declare variables
const name = "Alice"; // constant (can't reassign)
let age = 25; // can reassign
var old = "avoid"; // old way, use const/let
// Data types
const str = "Hello"; // String
const num = 42; // Number
const decimal = 3.14; // Also Number (no int/float distinction)
const bool = true; // Boolean
const nothing = null; // Null (intentionally empty)
let notSet; // Undefined (not set yet)
// Check type
console.log(typeof "hello"); // "string"
console.log(typeof 42); // "number"
console.log(typeof true); // "boolean"
// String operations
const firstName = "John";
const lastName = "Doe";
const fullName = firstName + " " + lastName; // concatenation
const greeting = `Hello, ${firstName}!`; // template literal (better!)
console.log(greeting.toUpperCase()); // "HELLO, JOHN!"
console.log(greeting.includes("John")); // true
console.log(greeting.length); // 12
Matrizes e objetos
// Arrays — ordered list of values
const fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]); // "apple" (0-indexed)
console.log(fruits.length); // 3
fruits.push("date"); // add to end
fruits.pop(); // remove from end
const removed = fruits.shift(); // remove from start
fruits.unshift("avocado"); // add to start
// Array methods
const numbers = [3, 1, 4, 1, 5, 9, 2, 6];
const doubled = numbers.map(n => n * 2); // [6, 2, 8, ...]
const evens = numbers.filter(n => n % 2 === 0); // [4, 2, 6]
const sum = numbers.reduce((acc, n) => acc + n, 0); // 31
const sorted = [...numbers].sort((a, b) => a - b); // [1, 1, 2, 3, 4, 5, 6, 9]
// Objects — key-value pairs
const person = {
name: "Alice",
age: 30,
isActive: true,
address: {
city: "Sydney",
country: "Australia"
}
};
console.log(person.name); // "Alice"
console.log(person["age"]); // 30
console.log(person.address.city); // "Sydney"
// Destructuring
const { name, age } = person; // extract specific fields
const { address: { city } } = person; // nested destructuring
Funções
// Function declaration
function add(a, b) {
return a + b;
}
// Arrow function (preferred in modern JS)
const multiply = (a, b) => a * b;
const square = n => n * n; // single param, no parentheses needed
// Default parameters
function greet(name = "World") {
return `Hello, ${name}!`;
}
console.log(greet()); // "Hello, World!"
console.log(greet("Alice")); // "Hello, Alice!"
// Rest parameters
function sum(...numbers) {
return numbers.reduce((acc, n) => acc + n, 0);
}
console.log(sum(1, 2, 3, 4, 5)); // 15
// Higher-order functions (functions as arguments)
function applyTwice(fn, value) {
return fn(fn(value));
}
console.log(applyTwice(square, 3)); // 81 (3^2 = 9, 9^2 = 81)
Manipulação de DOM (tornando as páginas interativas)
<!-- HTML setup -->
<div id="counter">
<h2 id="count">0</h2>
<button id="btn-inc">+1</button>
<button id="btn-dec">-1</button>
<button id="btn-reset">Reset</button>
</div>
// JavaScript to make it interactive
let count = 0;
const countEl = document.getElementById('count');
function updateDisplay() {
countEl.textContent = count;
countEl.style.color = count > 0 ? 'green' : count < 0 ? 'red' : 'black';
}
document.getElementById('btn-inc').addEventListener('click', () => {
count++;
updateDisplay();
});
document.getElementById('btn-dec').addEventListener('click', () => {
count--;
updateDisplay();
});
document.getElementById('btn-reset').addEventListener('click', () => {
count = 0;
updateDisplay();
});
JavaScript assíncrono
// Fetch data from an API
async function getWeather(city) {
try {
const response = await fetch(
`https://api.open-meteo.com/v1/forecast?latitude=51.5&longitude=-0.1¤t_weather=true`
);
if (!response.ok) {
throw new Error(`HTTP error: ${response.status}`);
}
const data = await response.json();
return data.current_weather;
} catch (error) {
console.error("Failed to fetch:", error.message);
return null;
}
}
// Call the async function
getWeather("London").then(weather => {
if (weather) {
console.log(`Temperature: ${weather.temperature}°C`);
}
});
Seu caminho de aprendizagem depois disso
- Semana 1-2: Variáveis, tipos de dados, matrizes, objetos
- Semana 3-4: Funções, loops, manipulação de DOM
- Mês 2: Async/await, Fetch API, tratamento de erros
- Mês 3: Iniciar React (pensamento de componente)
- Mês 4-6: Crie aplicativos da web completos
Melhores recursos gratuitos
- javascript.info– melhor tutorial JS gratuito (abrangente)
- Documentos da Web do MDN– documentos de referência (marque isto como favorito!)
- freeCodeCamp.org— exercícios interativos
- O Projeto Odin– currículo completo de desenvolvimento web
- JavaScript eloquente— livro grátis (avançado)
JavaScript em 2026 é a habilidade de programação mais exigida para desenvolvimento web. Comece hoje mesmo no console do seu navegador — não é necessária instalação. Crie pequenos projetos desde o primeiro dia e você progredirá mais rápido do que espera. A transição de desenvolvedor iniciante para desenvolvedor júnior normalmente leva de 6 a 12 meses de prática diária consistente.
🔗 Share this article
✍️ Leave a Comment