Как пользоваться онлайн-компилятором JavaScript
- Напишите или вставьте свой код на JavaScript в редактор. Исходный пример можно вернуть кнопкой Сбросить пример.
- Нажмите Запустить или сочетание клавиш Ctrl + Enter (⌘ + Enter на Mac).
- Вывод
console.log,console.infoиconsole.debugпоявляется на панели Результат.console.warn,console.errorи необработанные исключения вместе с трассировкой стека выделяются как ошибки. - Выберите ограничение времени: 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, не сохраняются.
Часто задаваемые вопросы
Какая версия JavaScript здесь поддерживается?
Ту, которую поддерживает движок вашего браузера: V8 в Chrome и Edge, SpiderMonkey в Firefox или JavaScriptCore в Safari. Текущие версии всех этих движков поддерживают современный ECMAScript, включая возможности ES2024.
Почему document не определён?
Чтобы страница оставалась отзывчивой и безопасной, ваш код выполняется в Web Worker, у которого нет доступа к странице. Используйте этот инструмент для логики, алгоритмов и обработки данных, а не для работы с DOM.
Можно ли использовать пакеты npm?
Нет. import, require и встроенные модули Node.js недоступны. Можно использовать только сам язык и стандартные Web API, которые предоставляют воркеры.
Что будет, если написать бесконечный цикл?
Страница останется отзывчивой, потому что цикл выполняется в воркере. Когда истечёт ограничение времени или вы нажмёте «Остановить», воркер будет завершён, и ваш код остановится.
Обновлено