JavaScript онлайн - IDE, редактор, компилятор, интерпретатор

Мгновенно запускайте JavaScript в изолированном воркере с выводом в консоль, async/await и современными возможностями ES2024. Без регистрации и установки.

ES2024 (your browser's engine) · Работает в браузере, поэтому ваш код никогда не попадает на наши серверы.
main.jsJavaScript
Результат

            
        
Ctrl/⌘ + Enter для запуска

Возможности онлайн-компилятора JavaScript (IDE, редактор и интерпретатор)

Пишите, запускайте и тестируйте код на JavaScript онлайн бесплатно. Эта страница — онлайн-IDE, редактор кода, компилятор и интерпретатор JavaScript в одном: введите код, нажмите «Запустить» и сразу увидите результат. Все работает в браузере — ничего не нужно устанавливать и не нужно создавать аккаунт.

  • Мгновенный запуск кода: ES2024 (your browser's engine), вывод менее чем за секунду после первой загрузки.
  • Редактор кода: подсветка синтаксиса, номера строк, подсветка парных скобок и автозакрытие скобок.
  • Понятные ошибки: сообщения об ошибках и предупреждения появляются в панели вывода так же, как на вашем компьютере.
  • Полноэкранный режим: Ctrl/⌘ + Shift + F, настраиваемый размер шрифта, расположение рядом или друг под другом и изменяемые размеры панелей.
  • Автосохранение: ваш код хранится в браузере; скачайте его как main.js или скопируйте одним щелчком.
  • Безопасные эксперименты: ограничение времени и кнопка «Остановить» прерывают бесконечные циклы.
  • Конфиденциальность: среда выполнения JavaScript работает на вашем устройстве, поэтому код никогда не загружается на сервер.
  • Темная тема и сочетания клавиш: Ctrl/⌘ + Enter запускает код.
  • Бесплатно: без регистрации и ограничений использования.

Изучайте другие языки программирования

Как пользоваться онлайн-компилятором JavaScript

  1. Напишите или вставьте свой код на JavaScript в редактор. Исходный пример можно вернуть кнопкой Сбросить пример.
  2. Нажмите Запустить или сочетание клавиш Ctrl + Enter (⌘ + Enter на Mac).
  3. Вывод console.log, console.info и console.debug появляется на панели Результат. console.warn, console.error и необработанные исключения вместе с трассировкой стека выделяются как ошибки.
  4. Выберите ограничение времени: 5, 15 или 60 секунд. Скрипт, который работает дольше, останавливается автоматически, а кнопку Остановить можно нажать в любой момент.

Ничего не нужно скачивать. JavaScript выполняется движком, который уже встроен в ваш браузер, поэтому страница готова к работе сразу. Чтобы сохранить код, используйте Копировать или main.js.

Ваш код выполняется локально, в Web Worker в вашем собственном браузере. Он никогда не отправляется на наши серверы и не хранится на них. Редактор запоминает ваш последний код в локальном хранилище браузера и больше нигде.

Что поддерживается

  • Современный JavaScript: всё, что поддерживает ваш браузер, включая классы, стрелочные функции, деструктуризацию, опциональную цепочку (?.), оператор нулевого слияния (??), BigInt, Map/Set и новые методы массивов.
  • await на верхнем уровне: ваш код оборачивается в асинхронную функцию, поэтому промисы можно напрямую ожидать через await.
  • Таймеры и промисы: setTimeout, setInterval, Promise.all и подобные функции работают. Запуск считается завершённым, когда выполнен код верхнего уровня (включая всё, что ожидается через await).
  • Web API, доступные в воркерах, например JSON, Intl, TextEncoder, crypto.getRandomValues и structuredClone.

Ограничения:

  • Нет DOM. Код выполняется в воркере, поэтому document, window и alert() недоступны.
  • Нет import/require. Это не Node.js, поэтому пакеты npm и модули Node, такие как fs, загрузить нельзя.
  • console.table выводит данные в виде JSON, а не нарисованной таблицы.
  • Поведение зависит от браузера, которым вы пользуетесь. В старых браузерах самых новых возможностей может не быть.

Краткий справочник по JavaScript

const scores = { ada: 91, linus: 78, grace: 85 };

const passed = Object.entries(scores)
  .filter(([, s]) => s >= 80)
  .map(([name, s]) => `${name}: ${s}`);

console.log(passed);           // ["ada: 91", "grace: 85"] в виде JSON

const sleep = ms => new Promise(r => setTimeout(r, ms));
await sleep(100);
console.log(scores.bob ?? 'no score');
ЗадачаСинтаксис
Объявить переменныеconst x = 1; let y = 2;
Стрелочная функцияconst add = (a, b) => a + b;
Шаблонная строка`Total: ${sum}`
Строгое равенствоa === b
Деструктуризацияconst { id, name } = user;
Дождаться промисаconst data = await promise;

Советы

  • Объекты и массивы выводятся как JSON с отступами. Выводите их напрямую, например console.log({ a, b }), чтобы видеть имена переменных рядом со значениями.
  • Map и Set выводятся с размером и содержимым (например, Map(2) [...]), а значения BigInt — с суффиксом n.
  • Скопируйте вывод JSON в форматировщик JSON, чтобы проверить его на ошибки или свернуть и изучить большие структуры.
  • Чтобы привести в порядок неаккуратный или минифицированный код, пропустите его через форматировщик JavaScript, прежде чем вставлять сюда.
  • Значения, привязанные к globalThis, сохраняются между запусками, пока вы не нажмёте «Остановить». Переменные, объявленные через const или let, не сохраняются.
Совет: нужны аннотации типов? Онлайн-компилятор TypeScript работает так же и вдобавок показывает сгенерированный JavaScript.

Часто задаваемые вопросы

Какая версия JavaScript здесь поддерживается?

Ту, которую поддерживает движок вашего браузера: V8 в Chrome и Edge, SpiderMonkey в Firefox или JavaScriptCore в Safari. Текущие версии всех этих движков поддерживают современный ECMAScript, включая возможности ES2024.

Почему document не определён?

Чтобы страница оставалась отзывчивой и безопасной, ваш код выполняется в Web Worker, у которого нет доступа к странице. Используйте этот инструмент для логики, алгоритмов и обработки данных, а не для работы с DOM.

Можно ли использовать пакеты npm?

Нет. import, require и встроенные модули Node.js недоступны. Можно использовать только сам язык и стандартные Web API, которые предоставляют воркеры.

Что будет, если написать бесконечный цикл?

Страница останется отзывчивой, потому что цикл выполняется в воркере. Когда истечёт ограничение времени или вы нажмёте «Остановить», воркер будет завершён, и ваш код остановится.

Обновлено

Скопировано в буфер обмена