Online JavaScript Runner

Write, run, and debug JavaScript or Node.js online in a full-featured browser IDE. Work with multiple files and packages, save your workspace, and collaborate in real time.

Bibliotecas pré-instaladas
🚀 339,661 execuções totais (665 este mês)
Incorporar
Saída

Pratique JavaScript com desafios de código

Resolva problemas práticos direto neste editor: rode os testes de exemplo, envie sua solução e receba uma revisão de código por IA.

Todos os desafios de JavaScript
Fácil

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

Você vai aprender AritméticaValores de retorno
BeginnerLearning-pathVariables
Fácil

Dias em um Mês

Retorne quantos dias tem um mês, incluindo anos bissextos.

Você vai aprender Regras do calendárioFunções auxiliares
BeginnerConditionsFunctionsLearning-path
Fácil

Average of Three

Average three whole numbers.

Você vai aprender AritméticaDivisão
BeginnerLearning-pathVariables
Fácil

Produto escalar de dois vetores

Multiplique dois vetores elemento a elemento e some os resultados, a operação central de todo neurônio.

Você vai aprender VetoresProduto escalar
Redes neuraisaiaprendizado de máquina
Fácil

Largest of Three

Pick the largest of three numbers without a built-in max.

Você vai aprender ComparaçõesCombinar condições
BeginnerConditionsLearning-path
Fácil

Verificação de Número Primo

Decida se um número é primo.

Você vai aprender DivisibilidadeOtimizar laços
BeginnerLoopsNumbersStudent-beginner
Fácil

Number Triangle

Build a triangle of increasing numbers.

Você vai aprender Linhas crescentesContador entre linhas
BeginnerLearning-pathNested-loopsPatterns
Fácil

Número de Armstrong

Verifique se um número é igual à soma de seus dígitos elevados à quantidade de dígitos.

Você vai aprender Extrair dígitosPotências
BeginnerNumbersStudent-beginner
Fácil

Row Sums

Add up every row of a grid.

Você vai aprender Listas 2DLaços aninhados
BeginnerGridsLearning-path
Fácil

Min and Max Together

Find the smallest and largest value in one pass.

Você vai aprender Uma única passadaVários valores de retorno
ArraysBeginnerFunctionsLearning-path
Fácil

Count Pairs With a Sum

Count pairs of positions whose values add up to a target.

Você vai aprender Pares de índicesEvitar contagem dupla
ArraysBeginnerLearning-pathNested-loops
Fácil

Hollow Square

Draw the outline of a square with * characters.

Você vai aprender Detectar bordasMontar strings
BeginnerLearning-pathNested-loopsPatterns

⚡ Sobre este Executor Online de JavaScript (Node.js)

O CodeUtility JavaScript Executor permite escrever e executar código JavaScript moderno diretamente no seu navegador - instantaneamente e sem qualquer configuração. Ele usa ambientes reais do Node.js para executar seu código com segurança em um contêiner isolado (sandbox), com suporte às versões 16, 18 e 20.

Esta ferramenta é perfeita para testar snippets de Node.js, explorar a sintaxe ES6+ ou aprender conceitos fundamentais de programação em JavaScript, como loops, funções, arrays, promises e o comportamento de async/await.

Você também pode usá-la para validar algoritmos, depurar pequenos scripts ou experimentar lógica em tempo de execução sem instalar o Node localmente. É ideal para estudantes, desenvolvedores backend ou qualquer pessoa que precise de uma forma rápida, baseada no navegador, de executar código JavaScript.

Mais do que um executor de código

Use no mesmo executor um editor de vários arquivos, um terminal de execução isolado, bibliotecas específicas do ambiente, espaços de trabalho persistentes, compartilhamento e colaboração em tempo real.

Como usar este executor?

Escolha um ambiente de execução, abra ou crie um arquivo, escreva o código e selecione Executar. A saída aparece no terminal; usuários conectados podem manter arquivos em um espaço de trabalho, instalar bibliotecas e colaborar por meio de compartilhamentos.

  1. Selecione uma versão e edite o arquivo atual ou abra outro arquivo do espaço de trabalho.
  2. Execute o código, forneça dados no terminal quando solicitado e consulte o histórico de execuções salvo.
  3. Use bibliotecas, ferramentas do espaço de trabalho, compartilhamento e chat quando a tarefa exigir mais de um trecho de código.

💡 Guia básico de Node.js para iniciantes

1. Declarando variáveis e constantes

Use let ou const para variáveis com escopo de bloco. const é usado para constantes.

let x = 10;
const PI = 3.14;
let name = "Alice";
let isActive = true;

2. Condicionais (if / switch)

Use if, else if, else ou switch para o fluxo de controle.

let x = 2;
if (x === 1) {
  console.log("Um");
} else if (x === 2) {
  console.log("Dois");
} else {
  console.log("Outro");
}

switch (x) {
  case 1:
    console.log("Um");
    break;
  case 2:
    console.log("Dois");
    break;
  default:
    console.log("Outro");
}

3. Loops

Use for, while e forEach para iterar sobre dados.

for (let i = 0; i < 3; i++) {
  console.log(i);
}

let n = 3;
while (n > 0) {
  console.log(n);
  n--;
}

4. Arrays

Use arrays para armazenar listas ordenadas de valores. Acesse com índices.

let fruits = ["apple", "banana", "cherry"];
console.log(fruits[0]);
console.log(fruits.length);

5. Manipulação de arrays

Use métodos como push, pop, slice e reverse.

fruits.push("kiwi");
fruits.pop();
console.log(fruits.slice(0, 2));
console.log(fruits.reverse());

let squares = [1, 2, 3, 4, 5].map(x => x * x);
console.log(squares);

6. Entrada/Saída no console

Use console.log para saída e o módulo readline para entrada.

const readline = require('readline');

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
});

rl.question("Qual é o seu nome? ", name => {
  console.log(`Olá, ${name}`);
  rl.close();
});

7. Funções

Funções podem ser declaradas ou expressas. Arrow functions são comuns no JavaScript moderno.

function greet(name) {
  return `Olá, ${name}`;
}

const add = (a, b) => a + b;

console.log(greet("Alice"));
console.log(add(2, 3));

8. Objetos (Map)

Objetos armazenam pares chave-valor. São semelhantes a dicionários ou mapas.

let person = { name: "Bob", age: 25 };
console.log(person.name);
console.log(person["age"]);

// Map do ES6
const map = new Map();
map.set("a", 1);
console.log(map.get("a"));

9. Tratamento de exceções

Use try, catch e finally para lidar com erros com segurança.

try {
  throw new Error("Algo deu errado");
} catch (e) {
  console.log(e.message);
} finally {
  console.log("Limpeza, se necessário");
}

10. Entrada/Saída de arquivos

Use o módulo fs do Node.js para ler e escrever arquivos.

const fs = require("fs");

fs.writeFileSync("test.txt", "Olá, Arquivo");
const data = fs.readFileSync("test.txt", "utf8");
console.log(data);

11. Manipulação de strings

Use métodos como trim(), toUpperCase(), replace() e split().

let text = "  Olá Mundo  ";
console.log(text.trim());
console.log(text.toUpperCase());
console.log(text.replace("Olá", "Oi"));
console.log(text.split(" "));

12. Classes e objetos

ES6+ suporta POO com a sintaxe class.

class Person {
  constructor(name) {
    this.name = name;
  }
  greet() {
    return `Oi, eu sou ${this.name}`;
  }
}

const p = new Person("Alice");
console.log(p.greet());

13. Referências

Objetos e arrays em JavaScript são passados por referência.

function update(arr) {
  arr.push("changed");
}

let data = ["original"];
update(data);
console.log(data);  // ["original", "changed"]