С чего начать учить JavaScript? 5 шагов для старта
JavaScript — один из тех языков программирования, которые можно просто освоить без опыта. Он используется для веб-разработки, на нем можно создавать серверные приложения, 3D-игры и даже программировать робототехнику. Автор блога SkillFactory Максим Рудик рассказывает, с чего начать изучение JavaScript.

Освойте профессию «Frontend-разработчик»
Заложите основы
Основы любого языка программирования — это типы данных, переменные, операторы, циклы, функции. Знаний в этих областях будет достаточно, чтобы научиться писать код на JavaScript. Одновременно с этим или раньше нужно освоить основы HTML и CSS — это язык разметки и каскадные таблицы стилей, с помощью которых создаются статичные веб-страницы. Чаще всего JavaScript используется именно для работы с элементами веб-страниц. Без знания их устройства будет сложно перейти от теории к практике.
Профессия / 9 месяцев
Frontend-разработчик
Создавайте интерфейсы сервисов, которыми пользуются все
2 400 ₽/мес 4 000 ₽/мес

- JavaScript for Beginners — бесплатный онлайн-курс на Coursera.
- Базовый курс по JavaScript от MDN Web Docks, крупнейшего ресурса, посвященного веб-разработке. Полностью переведен на русский язык.
- Основы языка с TutorialsPoint — отличный способ параллельно подтянуть профильный английский.
- «Программирование на JavaScript» — книга Эрика Фримена и Элизабет Робсон, подойдет для тех, кто еще не имел дела с программированием.
Освойте JQuery и популярные плагины
Чтобы понять, как работает JavaScript, проще всего начать с веб-разработки. Тут стоит освоить библиотеку JQuery. В ней та же логика, что и в чистом JavaScript, но она позволяет писать код кратко за счет более лаконичного синтаксиса. JQuery долго была самой популярной JavaScript-библиотекой для работы с веб-сайтами. В 2010-х появились новые фреймворки — Angular, React и Vue.js, а популярность JQuery стала снижаться.
Но ей не стоит пренебрегать хотя бы потому, что на ней написано огромное количество веб-сайтов, которые нужно поддерживать и развивать. Нередко работа начинающего программиста заключается в обслуживании кода, который достался ему «в наследство» от предшественников.
Материалов для изучения в сети достаточно: от официальной документации до подробнейших справочных и обучающих ресурсов и бесплатных видеоуроков.
Научитесь искать плагины и работать с ними. Они нужны, чтобы упростить работу с популярными элементами интерфейса. Они написаны на чистом JavaScript, практика их подключения и настройки не требует глубоких знаний, но хорошо тренирует владение языком. Это могут быть плагины для создания модальных окон (Tingle), галерей (lightgallery.js), встроенных объектов (SuperEmbed.js) и многих других элементов веб-страницы.
Читайте также Что выбрать: frontend, backend или fullstack?
Разберитесь с Node.js
Дальше нужно разобраться, что происходит на сервере: что такое базы данных и как они взаимодействуют с клиентской частью веб-приложения.
Для этого можно изучить Node.js. Это серверная платформа, где выполняется JavaScript. C ее помощью можно полностью реализовать backend веб-приложения. Для полноценного освоения клиентской части будет достаточно базовых знаний Node.js.
- Официальная документация с короткими и понятными примерами, на русском и на английском.
- Быстрый старт с express.js. Express — это фреймворк, с которым проще всего начать применять Node.js на практике.

Станьте Frontend-разработчиком
и создавайте интерфейсы сервисов, которыми пользуются все
Выберите: Angular, React или Vue.js
Дальнейшие шаги зависят от того, чем вы хотите заниматься. Самый популярный путь дальнейшего изучения JavaScript — освоение инструментов для веб-разработки.
Пользователям важно, чтобы страницы интернет-магазина, сайта соцсети или новостного портала загружались быстро, а владельцам в свою очередь важно, чтоб пользователи не покидали сайты из-за медленного интерфейса. Именно в результате погони за скоростью и производительностью появились такие JavaScript-фреймворки, как Angular и Vue.js и библиотека React.
С их помощью разработчики смогли перейти от формирования страницы на стороне сервера (Server Side Rendering) к формированию страницы на клиентской стороне (Client Side Rendering), то есть в браузере. В рамках этого перехода появилось понятие одностраничных или изоморфных приложений (Single Page Application).
Такие приложения загружают разметку с сервера только один раз, после чего при переходе на новые страницы запрошенная с сервера информация приходит в специальном формате, без HTML-тегов. Это работает намного быстрее, чем передача каждой запрошенной страницы с сервера в браузер.
Начать изучать фреймворки стоит с Vue.js. Он основан на тех же концепциях, что React и Angular, но появился позже них, организован более стройно и логично, поэтому в нем проще разобраться новичкам. Также для Vue есть подробная документация на русском языке.
Начните осваивать инструменты разработчика
Уже в процессе изучения JavaScript начинайте осваивать инструменты экосистемы веб-разработки на Javascript, необходимые для работы в команде:
- инструменты отладки кода (JavaScript Debugger, Chrome Dev Tools);
- менеджер пакетов npm, который позволяет одной командой в терминале скачивать и устанавливать любые плагины, библиотеки и фреймворки;
- система контроля версий Git. С ее помощью несколько разработчиков могут одновременно работать над проектом без риска запутаться в обновлениях;
- таск-менеджер Gulp. Это программа, написанная на JavaScript, позволяющая автоматизировать рутинные задачи веб-разработки, например объединение файлов, работу с CSS-препроцессорами и многое другое. На официальной странице сайта Gulp в разделе Plugins есть множество плагинов и модулей для решения большинства типовых задач;
- модульный упаковщик Webpack. Собирает все исходные файлы (картинки, шрифты, таблицы стилей, JS-файлы и т.д.) в единый граф зависимостей и упаковывает модули в один компактный пакет для загрузки браузером. Особенно полезен в организации работы с приложениями на React, но считается слишком громоздким для небольших и несложных проектов;
- фреймворки для тестирования JavaScript-кода (Jasmine, Mocha, PhantomJS);
- платформы кибербезопасности (Snyk, Node Security Project, Retire.js), с помощью которых разработчики находят уязвимости и критические ошибки в своем коде.
Когда освоите главные инструменты — можно смело выбирать специализацию. JavaScript используется не только во frontend-разработке, но и для создания мобильных, десктопных приложений и игр и даже для программирования бытовой техники и оборудования.
Frontend-разработчик
Научитесь создавать удобные и эффектные сайты, сервисы и приложения, которые нужны всем. Сегодня профессия на пике актуальности: в России 9000+ вакансий, где требуется знание JavaScript.
Что такое JavaScript?
Добро пожаловать на курс MDN JavaScript для начинающих! В первой статье курса мы дадим базовое определение JavaScript, ответим на вопросы «Что такое JavaScript?» и «Что он делает?», узнаем как работает JavaScript и как добавить его на веб-страницу.
| Необходимые навыки: | Базовая компьютерная грамотность, знание основ HTML и CSS. |
|---|---|
| Цели: | Знакомство с JavaScript и его возможностями, способами его подключения к веб-странице. |
Определение высокого уровня
JavaScript это язык, который позволяет вам применять сложные вещи на web странице — каждый раз, когда на web странице происходит что-то большее, чем просто её статичное отображение — отображение периодически обновляемого контента, или интерактивных карт, или анимация 2D/3D графики, или прокрутка видео в проигрывателе, и т.д. — можете быть уверены, что скорее всего, не обошлось без JavaScript. Это третий слой слоёного пирога стандартных web технологий, два из которых (HTML и CSS) мы детально раскрыли в других частях учебного пособия.

- HTML — это язык разметки, который мы используем для визуального и смыслового структурирования нашего web контента, например, определяем параграфы, заголовки, таблицы данных, или вставляем изображения и видео на страницу.
- CSS — это язык стилей с помощью которого мы придаём стиль отображения нашего HTML контента, например придаём цвет фону (background) и шрифту, придаём контенту многоколоночный вид.
- JavaScript язык программирования, который позволяет вам создать динамически обновляемый контент, управляет мультимедиа, анимирует изображения, впрочем, делает всё, что угодно. Окей, не все, что угодно, но всё равно, это удивительно, что можно достичь с помощью нескольких строк JavaScript-кода.
Три слоя прекрасно выстраиваются друг над другом. Возьмём простой текст для примера. Для придания структуры и смыслового назначения тексту, разметим его с помощью HTML:
p>Player 1: Chrisp>

Затем мы добавим немного CSS, что бы это выглядело симпатичнее:
p font-family: "helvetica neue", helvetica, sans-serif; letter-spacing: 1px; text-transform: uppercase; text-align: center; border: 2px solid rgba(0, 0, 200, 0.6); background: rgba(0, 0, 200, 0.3); color: rgba(0, 0, 200, 0.6); box-shadow: 1px 1px 2px rgba(0, 0, 200, 0.4); border-radius: 10px; padding: 3px 10px; display: inline-block; cursor: pointer; >

И наконец, добавим немного JavaScript для придания динамического поведения:
const para = document.querySelector(‘p’); para.addEventListener(‘click’, updateName); function updateName()
Попробуйте кликнуть по тексту чтобы увидеть, что произойдёт (Вы так же можете найти это демо на GitHub — смотрите исходный код, или запустите вживую)!
JavaScript может делать намного больше — давайте выясним это более детально.
Так что же он действительно может делать?
Ядро языка JavaScript состоит из некоторого количества обычных возможностей, которые позволяют делать следующее:
- Хранить данные внутри переменных. В примере выше, мы, например, запрашивали ввод нового имени, которое нужно было ввести, затем сохраняли имя в переменной name .
- Операции над фрагментами текстов (известными в программировании как «строки»). В примере выше мы брали строку «Player 1: » и присоединили её к значению переменной name для получения полного текста, например: »Player 1: Chris».
- Запускать код в соответствии с определёнными событиями происходящими на web странице. В нашем примере выше, мы использовали click (en-US) событие, для определения момента, когда кнопка была кликнута, в соответствии с этим запускался код, который обновлял текст.
- И многое другое!
Ещё более увлекательным является функциональность, созданная поверх основного языка JavaScript. Так называемые интерфейсы прикладного программирования (API) предоставляют вам дополнительные сверхспособности для использования в вашем коде JavaScript.
API — это готовые наборы блоков кода, которые позволяют разработчику реализовывать программы, которые в противном случае было бы трудно или невозможно реализовать. Они делают то же самое для программирования, что готовые комплекты мебели делают для домашнего строительства — гораздо проще брать готовые панели и скручивать их вместе, чтобы сделать книжную полку, чем самому разрабатывать дизайн, ходить в поисках правильной древесины, вырезать все панели необходимого размера и формы, найти подходящие винты, а затем собрать их вместе, чтобы сделать книжную полку.
Они обычно делятся на две категории.

API-интерфейсы браузера встроены в ваш веб-браузер и могут отображать данные из окружающего компьютерного окружения или делать полезные сложные вещи. Например:
- API-интерфейс DOM (Document Object Model) позволяет вам манипулировать HTML и CSS, создавать, удалять и изменять HTML, динамически применять новые стили к вашей странице и т. д.. Каждый раз, когда вы видите всплывающее окно на странице или какое-то новое содержимое, Как мы видели выше в нашем простом демо), например, это DOM в действии.
- API геолокации извлекает географическую информацию. Так Google Maps может найти ваше местоположение и нанести его на карту.
- API Canvas и WebGL позволяют создавать анимированные 2D и 3D-графики. Люди делают некоторые удивительные вещи, используя эти веб-технологии — см. Chrome Experiments и webglsamples.
- Аудио и видео API, такие как HTMLMediaElement и WebRTC, позволяют делать действительно интересные вещи с мультимедиа, такие как проигрывание аудио и видео прямо на веб-странице, или захватывать видео с веб-камеры и отображать его на Чужой компьютер (попробуйте наш простой демонстрационный снимок, чтобы понять идею)
Примечание: Большинство наших демо не будут корректно работать в старых браузерах — поэтому будет хорошей идеей, для запуска вашего кода установить один из современных браузеров , таких как Firefox, Chrome, Edge или Opera . Также понадобится более подробно рассмотреть раздел по кроссбраузерному тестированию, когда вы приблизитесь к разработке производственного кода (т.е реального кода, который будут использовать клиенты).
По умолчанию сторонние API-интерфейсы не встроены в браузер, и вам придётся захватывать их код и информацию из какого-либо места в Сети. Для примера:
- Twitter API позволяет вам отображать ваши последние твиты на вашем веб-сайте.
- Google Maps API позволяет вам встраивать пользовательские карты на ваш сайт и другой подобный функционал.
Примечание: Эти API-и являются продвинутыми, и мы не будем их рассматривать в нашем курсе, но ссылки, данные выше, предлагают полную документацию, если вы заинтересованы в более подробной информации.
Доступно ещё больше! Но пока не заостряйте на этом внимание. Вы не сможете создать следующий Facebook, Google Maps или Instagram после 24 часов изучения JavaScript — сначала нужно изучить основы. И именно для этого вы здесь — давайте двигаться дальше!
Что JavaScript делает на вашей странице?
В этой главе мы рассмотрим код и увидим что же действительно происходит, когда на странице запускается JavaScript.
Давайте составим краткий бриф, что же происходит когда мы загружаем страничку в браузере (первое упоминание в статье Как работает CSS). Когда вы загружаете страничку в браузере, вы запускаете ваш код (HTML, CSS и JavaScript) внутри исполняемой среды (внутри вкладки браузера). Это как будто фабрика берёт сырьё (некий код) и выдаёт продукцию (веб-страничку).

Код JavaScript выполняется JavaScript-движком браузера, после того как код HTML и CSS был обработан и сформирован в веб-страницу. Это гарантирует, что структура и стиль страницы уже сформированы к моменту запуска JavaScript.
Это хорошо, так как часто использование JavaScript заключается в динамическом изменении HTML и CSS в целях обновления пользовательского интерфейса посредством Document Object Model API (как упоминалось выше). Если бы запуск JavaScript осуществлялся прежде загрузки HTML и CSS, то это привело бы к возникновению ошибок.
Безопасность браузера
Каждая вкладка браузера представляет собой отдельную коробку для запуска кода (в техническом языке, эти коробки называются «средами исполнения») — это значит, что в большинстве случаев код на каждой вкладке запускается полностью отдельно, а код одной вкладки не может напрямую влиять на код другой вкладки или на другом веб-сайте. Это хорошая мера безопасности — если бы это было иначе, пираты могли написать код, который крал информацию с других сайтов или делал другие плохие вещи.
Примечание: Есть способы отправлять код и данные между разными веб-сайтами/вкладками безопасным способом, но это продвинутые методы, которые мы не будем рассматривать в рамках этого курса.
Последовательность выполнения JavaScript
Обычно, когда браузер сталкивается с блоком JavaScript, он запускает его по порядку, сверху вниз. Это значит, что вам нужно осторожно выбирать порядок. Например, вернёмся к блоку JavaScript, который мы видели в первом примере:
const para = document.querySelector(‘p’); para.addEventListener(‘click’, updateName); function updateName()
Здесь мы выбираем абзац текста (строка 1), а затем добавляем к нему обнаружение событий (строка 3), чтобы при нажатии на этот абзац выполнялся блок кода updateName() (строки 5–8). Блок кода updateName() (эти типы многократно используемых блоков кода называются «функции») запрашивает у пользователя новое имя, а затем вставляет это имя в абзац для обновления отображения.
Если вы поменяете порядок первых двух строк кода, он перестанет работать — вместо этого вы получите ошибку возвращаемую в консоль браузера — TypeError: para is undefined . Это значит, что объект para ещё не существует и вы не можете добавить к нему обнаружение событий.
Примечание: Это очень частая ошибка — вы должны быть осторожны, чтобы объекты, на которые ссылается ваш код, существовали до того, как вы попытаетесь что-то с ними сделать.
Интерпретируемый против компилируемого кода
В контексте программирования, вы можете услышать термины интерпретация и компиляция. JavaScript является интерпретируемым языком — код запускается сверху вниз и результат запуска немедленно возвращается. Вам не нужно преобразовывать код в другую форму, перед запуском в браузере.
С другой стороны, ккомпилируемые языки преобразуются (компилируются) в другую форму, прежде чем они будут запущены компьютером. Например, C / C ++ компилируются в язык ассемблера, который затем запускается компьютером.
Оба подхода имеют разные преимущества, которые на данном этапе мы обсуждать не будем.
Серверный против клиентского кода
Вы так же можете услышать термины серверный и клиентский код, особенно в контексте веб-разработки. Клиентский код — это код, который запускается на компьютере пользователя. При просмотре веб-страницы, клиентский код загружается, а затем запускается и отображается браузером. В этом модуле JavaScript мы явно говорим о клиентском JavaScript.
С другой стороны, серверный код запускается на сервере, затем его результаты загружаются и отображаются в браузере. Примеры популярных серверных веб-языков включают PHP, Python, Ruby и ASP.NET. И JavaScript! JavaScript так же может использоваться, как серверный язык, например в популярной среде Node.js — вы можете больше узнать о серверном JavaScript в нашем разделе Dynamic Websites – Server-side programming.
Слово динамический используется для описания и клиентского JavaScript, и серверного языка — это относится к возможности обновления отображения веб-страницы/приложения, чтобы показывать разные вещи в разных обстоятельствах, генерируя новый контент по мере необходимости. Серверный код динамически генерирует новый контент на сервере, например достаёт данные из базы данных, тогда как клиентский JavaScript динамически генерирует новое содержание внутри браузера на клиенте, например создаёт новую HTML таблицу, вставляя в неё данные полученные с сервера, затем отображает таблицу на веб-странице, которую видит пользователь. В этих двух контекстах значение немного отличается, но связано, и обычно оба подхода (серверный и клиентский) работают вместе.
Веб-страница без динамического обновления контента называется статической — она просто показывает один и тот же контент все время.
Как добавить JavaScript на вашу страницу?
Внутренний JavaScript
- Сначала, сделайте локальную копию нашего файла-примера apply-javascript.html. Сохраните его в удобное для вас место.
- Откройте этот файл в вашем браузере и в вашем текстовом редакторе. Вы увидите, что HTML создаёт простую веб-страницу с активной кнопкой.
- Затем, перейдите в текстовый редактор и добавьте следующие строки перед закрывающим тегом :
script> // здесь будет JavaScript script>
.addEventListener("DOMContentLoaded", function () function createParagraph() let para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > const buttons = document.querySelectorAll("button"); for (let i = 0; i buttons.length; i++) buttons[i].addEventListener("click", createParagraph); > >);
Примечание: вы можете увидеть эту версию на GitHub-е как apply-javascript-internal.html (посмотреть вживую).
Внешний JavaScript
Это отлично работает, но что если мы хотим поместить наш JavaScript в отдельный файл? Давайте сейчас разберёмся с этим.
- Сначала, создайте новый файл в той же папке, что и ваш файл-пример HTML. Назовите его script.js — убедитесь, что у имени файла расширение .js, так как оно распознается, как JavaScript.
- Замените ваш текущий элемент на следующий:
script src="script.js" defer> script>
function createParagraph() let para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > const buttons = document.querySelectorAll("button"); for (let i = 0; i buttons.length; i++) buttons[i].addEventListener("click", createParagraph); >
Примечание: вы можете увидеть эту версию на GitHub-е как apply-javascript-external.html и script.js (посмотреть вживую).
Инлайновые JavaScript обработчики
Обратите внимание, что иногда можно столкнуться с частями JavaScript-кода, который живёт внутри HTML. Это может выглядеть примерно так:
function createParagraph() var para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); >
button onclick="createParagraph()">Click me!button>
Вы можете попробовать эту версию в нашей демонстрации ниже:
Эта демонстрация имеет те же функциональные возможности, что и в предыдущих двух разделах, за исключением того, что элемент содержит встроенный обработчик onclick , который запускает функцию при нажатии кнопки.
Но пожалуйста, не делайте этого. Это плохая практика — загрязнять ваш HTML кодом JavaScript, и она не эффективна — вам нужно будет добавить атрибут onclick=»createParagraph()» к каждой кнопке, к которой вы хотите подключить JavaScript.
Использование чистой JavaScript конструкции, позволит вам выбрать все кнопки, используя одну команду. Код, который можно использовали для этой цели, выглядит следующим образом:
const buttons = document.querySelectorAll("button"); for (let i = 0; i buttons.length; i++) buttons[i].addEventListener("click", createParagraph); >
Это может выглядеть немного длиннее, чем атрибут onclick , но это будет работать для всех кнопок, независимо от того, сколько их на странице, и сколько их удалят или добавят. JavaScript менять не нужно.
Примечание: Попробуйте отредактировать вашу версию apply-javascript.html и добавить ещё несколько кнопок в файл. После перезагрузки вы должны увидеть, что все кнопки создают параграф, если кликнуть на них. Классно, да?
Стратегии загрузки скриптов
Существует ряд проблем, связанных с загрузкой скриптов в нужное время. Всё не так просто, как кажется! Распространённой проблемой является то, что весь HTML-код на странице загружается в том порядке, в котором отображается. Если вы используете JavaScript для манипуляции элементами на странице (или, точнее, в DOM – Объектной Модели Документа), ваш код не будет работать, если JavaScript-код загрузится и распознается раньше HTML-кода, с которым вы пытаетесь взаимодействовать.
Комментарии
Так же, как и в HTML и CSS, возможно писать комментарии в вашем JavaScript-коде, что будет проигнорировано браузером, и существует только для того, чтобы давать подсказки вашим друзьям-разработчикам о том, как работает код (и лично вам, если вы вернётесь к коду спустя 6 месяцев и не сможете вспомнить, что вы делали). Комментарии очень полезны, и вы должны часто их использовать, особенно для больших приложений. Вот два типа комментариев:
-
Однострочный комментарий пишется после двойного слеша (//), например:
// Я комментарий
/* Я тоже комментарий */
Так, например, мы можем описать наш последний демо-пример JavaScript подобными комментариями:
// Функция: создаёт новый параграф и добавляет его вниз тела HTML. function createParagraph() var para = document.createElement("p"); para.textContent = "You clicked the button!"; document.body.appendChild(para); > /* 1. Получаем ссылки на все кнопки на странице в виде массива. 2. Перебераем все кнопки и добавляем к ним отслеживатель события нажатия. При нажатии любой кнопки, будет выполняться функция createParagraph(). */ var buttons = document.querySelectorAll("button"); for (var i = 0; i buttons.length; i++) buttons[i].addEventListener("click", createParagraph); >
Выводы
Поздравляем, вы сделали ваш первый шаг в мир JavaScript. Мы начали всего-лишь с теории, чтобы вы привыкли к тому, что вы будете использовать JavaScript, и что именно вы можете делать с его помощью. На этом пути вы увидели несколько примеров кода и выучили, как JavaScript вписывается в остальной код на вашем сайте среди всего прочего.
JavaScript может показаться немного пугающим в данным момент, но не переживайте — в этом курсе мы проведём вас сквозь него простыми шагами, которые имеют смысл, забегая наперёд. В следующей главе мы погрузимся непосредственно в практику, подталкивая вас погрузиться в код и сделать ваши собственные примеры JavaScript.
Found a content problem with this page?
- Edit the page on GitHub.
- Report the content issue.
- View the source on GitHub.
This page was last modified on 3 авг. 2023 г. by MDN contributors.
Как включить JavaScript в вашем веб-браузере
В настоящее время почти все веб-страницы используют JavaScript, скриптовый язык программирования, который работает на веб-браузере посетителя. Это делает веб-страницы более функциональными, а если по каким-либо причинам JavaScript отключен, содержание или функциональность веб-страницы может быть ограничена или вовсе не возможна. Здесь вы можете найти инструкции о том, как включить (активировать) JavaScript в пяти наиболее распространенных веб-браузерах.
Если вы веб-разработчик, посмотрите инструкции о том как использовать тег в коде вашей интернет-страницы.
Google Chrome
- В меню браузера нажмите кнопку «Customize and control Google Chrome» и выберите пункт «Settings».
- На странице «Settings» нажмите ссылку «Show advanced settings. «
- Под пунктом «Privacy» нажмите на кнопку «Content settings. «.
- Когда диалоговое окно откроется, посмотрите на секцию «JavaScript» и поставьте галочку «Allow all sites to run JavaScript (recommended)».
- Нажмите кнопку «OK», чтобы закрыть окно.
- Закройте вкладку «Settings».
- Нажмите на кнопку «Reload this page» для обновления страницы.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
Mozilla Firefox
- В адресной строке введите about:config и нажмите Enter.
- Нажмите «Я буду осторожен, обещаю», если появится предупреждающее сообщение.
- В поле поиска найдите javascript.enabled.
- Переключите настройку «javascript.enabled» (щелкните правой кнопкой мыши и выберите «Переключить» или дважды щелкните настройку), чтобы изменить значение с «false» на «true».
- Нажмите кнопку «Обновить текущую страницу» в веб-браузере, чтобы обновить страницу.
- 1.
- 2.
- 3.
- 4.
- 5.
Apple Safari
- В меню веб-браузера нажмите на кнопку «Edit» и выберите «Preferences».
- В окне «Preferences» выберите вкладку «Security».
- На вкладке «Security» в разделе «Web content» поставьте галочку «Enable JavaScript».
- Нажмите на кнопку «Reload the current page» в веб-браузере, что бы обновить страницу.
- 1.
- 2.
- 3.
- 4.
Opera
- 1. Нажмите на значок Opera «Меню», а затем «Настройки».
- 2. Нажмите «Веб-сайты», а затем выберите «Разрешить всем сайтам запускать JavaScript (рекомендуется)».
- 3. Нажмите кнопку «Обновить» в веб-браузере, чтобы обновить страницу.
1. 2. 3.
Internet Explorer
- В меню веб-браузера нажмите «Tools» и выберите пункт «Internet Options».
- В разделе «Internet Options» выберите вкладку «Security».
- На вкладке «Security» нажмите кнопку «Custom level. «.
- После открытия диалогового окна «Security Settings — Internet Zone», посмотрите раздел «Scripting».
- В разделе «Active Scripting» выберите пункт «Enable».
- После появления всплывающего окна «Warning!» в котором спрашивается «Are you sure you want to change the settings for this zone?» нажмите кнопку «Yes».
- В окне «Internet Options» нажмите кнопку «OK», что бы закрыть его.
- Нажмите на кнопку «Refresh» в веб-браузере, чтобы обновить страницу.
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
Инструкции для разработчиков
Вы можете использовать ссылку на этот сайт, что бы рассказать пользователям у которых отключен Javascript о том, как включить Javascript в пяти наиболее распространенных веб-браузерах. Вы можете использовать приведенный ниже код и изменить его в соответствии с вашими нуждами.
- Инструкции для вашего браузера помещаются в верхнюю часть страницы
- Все изображения кликабельны, для удобства просмотра в натуральном размере
- Инструкции для разработчиков размещены в самом низу страницы и не мешают обычным пользователям.
О проекте
Программирование, проектирование, тестирование, получение обратной связи с пользователями и написание материалов для этого сайта сделали Тони Подманиски, Пол Ирландских и Джереми Хилл. Мы хотели бы поблагодарить всех тех, кто помогал и содействовал нам любым способом. Надеемся эта страница окажется полезной для вас и ваших пользователей.
React
React is a JavaScript library for building complex interactive User Interfaces from encapsulated components. Learn more about the library from the React official website.
WebStorm integrates with React providing assistance in configuring, editing, linting, running, debugging, and maintaining your applications.
Before you start
- Make sure you have Node.js on your computer.
- Make sure the JavaScript Debugger plugin is enabled in the settings. Press Control+Alt+S to open the IDE settings and then select Plugins . Click the Installed tab. In the search field, type JavaScript Debugger . For more information about plugins, refer to Managing plugins.
Create a new React application
The recommended way to start building a new React single page application is create-react-app package, which WebStorm downloads and runs for you using npx. As a result, your development environment is preconfigured to use webpack, Babel, ESLint, and other tools.
Of course, you can still download Create React App yourself or create an empty WebStorm project and install React in it.
Learn more about installing React and creating React applications from the React official website.
Generate a React application with create-react-app
- Click Create New Project on the Welcome screen or select File | New | Project from the main menu. The New Project dialog opens.
- In the left-hand pane, choose React .
- In the right-hand pane:
- Specify The path to the folder where the project-related files will be stored.
- In the Node Interpreter field, specify the Node.js interpreter to use. Select a configured interpreter from the list or choose Add to configure a new one.
- From the create-react-app list, select npx create-react-app . Alternatively, for npm version 5.1 and earlier, install the create-react-app package yourself by running npm install —g create-react-app in the Terminal Alt+F12 . When creating an application, select the folder where the create-react-app package is stored.
- Optionally: To use TSX instead of JSX, select the Create TypeScript project checkbox. WebStorm will generate .tsx files for your application and a tsconfig.json configuration file.
Alternatively, open the built-in Terminal and type:
- npx create-react-app to create an application.
- cd to switch to the application folder.
- npm start to start the Node.js server.
Install React in an empty WebStorm project
In this case, you will have to configure the build pipeline yourself as described in Building a React application below. Learn more about adding React to a project from the React official website.
Create an empty WebStorm project
- Click Create New Project on the Welcome screen or select File | New | Project from the main menu. The New Project dialog opens.
- In the left-hand pane, choose Empty Project . In the right-hand pane, specify the application folder and click Create .
Install React in an empty project
- Open the empty project where you will use React .
- In the embedded Terminal ( Alt+F12 ) , type: npm install —save react react-dom
Start with an existing React application
To continue developing an existing React application, open it in WebStorm and download the required dependencies.
Open the application sources that are already on your machine
- Click Open on the Welcome screen or select File | Open from the main menu. In the dialog that opens, select the folder where your sources are stored.
Check out the application sources from your version control
- Click Get from VCS on the Welcome screen. Alternatively, select File | New | Project from Version Control or Git | Clone… from the main menu. Instead of Git in the main menu, you may see any other Version Control System that is associated with your project. For example, Mercurial or Perforce .
- In the dialog that opens, select your version control system from the list and specify the repository to check out the application sources from. For more information, refer to Check out a project (clone).
Download the dependencies

- Click Run ‘npm install’ or Run ‘yarn install’ in the popup: You can use npm, Yarn 1, or Yarn 2, refer to npm and Yarn for details.
- Select Run ‘npm install’ or Run ‘yarn install’ from the context menu of package.json in the editor or in the Project tool window.
Project security
When you open a project that was created outside WebStorm and was imported into it, WebStorm displays a dialog where you can decide how to handle this project with unfamiliar source code.

Select one of the following options:
- Preview in Safe Mode : in this case, WebStorm opens the project in a preview mode. It means that you can browse the project’s sources but you cannot run tasks and script or run/debug your project. WebStorm displays a notification on top of the editor area, and you can click the Trust project… link and load your project at any time.
- Trust Project : in this case, WebStorm opens and loads a project. That means the project is initialized, project’s plugins are resolved, dependencies are added, and all WebStorm features are available.
- Don’t Open : in this case, WebStorm doesn’t open the project.
Projects created from the Welcome screen or via File | New | Project as described in Creating projects are automatically considered trusted.
Code completion
WebStorm provides code completion for React APIs and JSX in JavaScript code. Code completion works for React methods, React-specific attributes, HTML tags and component names, React events, component properties, and so on. Learn more from the React official website.
To get code completion for React methods and React-specific attributes, you need to have the react.js library file somewhere in your project. Usually the library is already in your node_modules folder.
Complete React methods, attributes, and events
By default, the code completion popup is displayed automatically as you type. For example:

In JSX tags, WebStorm provides coding assistance for React-specific attributes, such as className or classID , and non-DOM attributes, such as key or ref . Moreover, auto-completion also works for names of classes defined in the project’s CSS files:

All React events, such as onClick or onChange , can also be completed automatically together with curly braces =<> or quotes «» .
By default, curly braces are inserted. You can have WebStorm always add quotes or choose between quotes or braces based on the type from a TypeScript definition file (d.ts). To change the default setting, open the Settings dialog ( Control+Alt+S ), go to Editor | Code Style | HTML and select the applicable option from the Add for JSX attributes list.

Completion also works for JavaScript expressions inside curly braces. This applies to all the methods and functions that you have defined:

Complete HTML tags and component names
WebStorm provides code completion for HTML tags and component names that you have defined inside methods in JavaScript or inside other components:

Completion also works for imported components with ES6 style syntax:

Complete component properties
WebStorm provides code completion for component properties defined using propTypes and resolves them so you can quickly jump or preview their definitions:
When you autocomplete the name of a component, WebStorm adds all its required properties automatically. If some of the required properties are missing in the usage of a component, WebStorm warns you about that.
Transfer HTML attributes to JSX
When you copy a piece of HTML code with class attributes or on-event handlers and paste it into JSX, WebStorm automatically replaces these attributes with React-specific ones ( className , onClick , onChange , and so on.)
This also works for TSX:
To copy HTML code to JSX or TSX as is, use Paste Simple Control+Alt+Shift+V or open the Settings dialog ( Control+Alt+S ), go to Editor | General | Smart Keys | JavaScript , and clear the Convert attributes when pasting HTML to JSX files checkbox.
React code snippets
WebStorm comes with a collection of more than 50 code snippets that expand into different statements and blocks of code often used in React apps, including React Hooks. The example below shows how you can use the rcjc abbreviation to create a class that defines a new React component:
Create a React code construct from a snippet
- Type the required abbreviation in the editor and press Tab .
- Press Control+J and choose the relevant snippet. To narrow down the search, start typing the abbreviation and then select it from the completion list.
For more information, refer to Live Templates.
View the list of all available React snippets

- In the Settings dialog ( Control+Alt+S ), click Live Templates under Editor , and then expand the React or React hooks node.
Emmet in JSX
With WebStorm, you can use Emmet not only in HTML but also in your JSX code taking advantage of some special React twists. For example, the abbreviation div.my-class expands in JSX to but not to as it would in HTML:
Navigate through a React application
Besides the basic navigation, WebStorm helps you jump between React-specific code elements.
- To jump to the declaration of a method or a JavaScript expression inside curly braces <> , select the method or expression and press Control+B . To jump to the declaration of a component, select the component name and press Control+B . Alternatively, use Control+LeftClick : keeping Control pressed, hover over the symbol. When the symbol turns into a hyperlink, its declaration will be displayed in the tooltip. Click the hyperlink without releasing the key to open the declaration in the editor. Learn more from Go to declaration and its type.
- To view component definition, press Control+Shift+I . Learn more from Definition and type definition.

- To view quick documentation for a component, press Control+Q . Learn more from JavaScript documentation look-up.

- WebStorm lets you easily navigate through JSX tags using breadcrumbs and colorful highlighting for the tag tree in the editor gutter.

Lint a React application
All the WebStorm built-in code inspections for JavaScript and HTML also work in JSX code. WebStorm alerts you in case of unused variables and functions, missing closing tags, missing statements, and much more.

For some inspections WebStorm provides quick-fixes, for example, suggests adding a missing method. To view the quick-fix popup, press Alt+Enter .
To customize the list of inspections, open the Settings dialog ( Control+Alt+S ), go to Editor | Inspections, and disable the inspections you don’t want to see or change their severity levels. Learn more from Disabling and enabling inspections and Change inspection severity.
ESLint
Besides providing built-in code inspections, WebStorm also integrates with linters, such as ESLint, for JSX code. ESLint brings a wide range of linting rules that can also be extended with plugins. WebStorm shows warnings and errors reported by ESLint right in the editor, as you type. With ESLint, you can also use JavaScript Standard Style as well as lint your TypeScript code.
For more information, refer to ESLint.
To have ESLint properly understand React JSX syntax, you need eslint-plugin-react. With this plugin, you are warned, for example, when the display name is not set for a React component, or when some dangerous JSX properties are used:

If you created your application with create-react-app, your development environment is already preconfigured to use ESLint.
Install and configure ESLint in a React project
- In the built-in Terminal ( View | Tool Windows | Terminal ), type:
npm install —save-dev eslint npm install —save-dev eslint-plugin-react
Example of .eslintrc structure (ESLint 1.x with react plugin)
- In the ecmaFeatures object, add «jsx» = true . Here you can also specify additional language features you’d like to use, for example, ES6 classes, modules, and so on.
- In the plugins object, add react .
- In the rules object, you can list ESLint built-in rules that you would like to enable, as well as rules available via the react plugin.
Learn more about ESLint and react plugin configuration from the ESLint official website.
Code refactoring in a React application
Besides the common WebStorm refactorings, in a React application you can also run Rename for React components and use Extract Component to create new components.
Rename a component
Below is an example of renaming a component that is defined and used in only one file:
In the same way, you can rename components defined in one file and then imported to another file using a named export:
- Place the caret within the component name and press Shift+F6 or select Refactor | Rename from the main menu of from the context menu.
- Specify the new component name in compliance with React naming conventions.
Rename a state value
When you rename a state value, WebStorm suggests renaming the corresponding setter (the function that updates this state value in a React useState hook).
- Place the caret within the name of the state value and press Shift+F6 or select Refactor | Rename from the main menu of from the context menu.
- Specify the new value name and press Enter . The focus moves to the setter where the new name of the value is suggested. Press Enter to accept the suggestion.
Extract a component
You can create a new React component by extracting the JSX code from the render method of an existing component. The new component can be defined as a function or as a class, refer to Function and Class Components on the React official website.
- Select the code you want to extract and choose Refactor | Extract Component from the context menu. Alternatively, go to Refactor | Extract/Introduce | Extract Component on the main menu or press Control+Alt+Shift+T and select Extract Component from the popup.
- In the dialog that opens, specify the name of the new component and its type. By default, a functional component is created. If you want to define the new component as a class, select Class .
- Click OK . The new component will be defined next to the existing one and used in it.
- Optionally: use the Move Symbol refactoring to move the new component and all the required imports to a separate file.
- Optionally: modify the code templates that WebStorm uses for new components. In the Settings dialog ( Control+Alt+S ), go to Editor | File and Code Templates , open the Code tab, and update the templates as necessary using the Apache Velocity template language.
Convert a function to a class component
With the Convert to Class Component refactoring, WebStorm generates a ES6 class with the name of the function which you want to convert. This class extends React .Component and contains a render() method where the function body is moved. Learn more from the React official website.
- Place the caret anywhere inside the function to convert and select Refactor | Convert to Class Component from the main menu or from the context menu.
- Alternatively, press Control+Alt+Shift+T and select Convert to Class Component from the popup.
Convert a class to a functional component
With the Convert to Functional Component refactoring, WebStorm generates a function with the name of the class which you want to convert and moves the contents of the render() method to the function body.
- Place the caret anywhere inside the class to convert and select Refactor | Convert to Functional Component from the main menu or from the context menu.
- Alternatively, press Control+Alt+Shift+T and select Convert to Functional Component from the popup.
Destructuring in a React application
Destructuring lets you easily unpack values from arrays and objects into variables. This functionality has a very concise syntax that is often used when you need to pass data in your application.
When working with React class components, consider using the Introduce object/array destructuring intention action. Learn more from Destructuring in JavaScript.
Run and debug a React application
The recommended way to start building a new React single page application is Create React App. Only in this case your development environment is preconfigured to use webpack and Babel. Otherwise, you need to configure a build pipeline first.
For applications created with Create React App in the WebStorm New Project wizard as described above, WebStorm generates two run/debug configurations with default settings:
- An npm configuration with the default name npm start . This configuration runs the npm start command that launches the development server and starts your application in the development mode.
- A JavaScript Debug configuration with the default name Debug Application . This configuration launches a debugging session.
If your application was created without using Create React App, you need to create an npm and a JavaScript Debug run/debug configurations with the actual settings, such as, host, port, etc., manually.
Run a React application
Only for applications created with create-react-app .

- Select the npm start run configuration from the list on the toolbar and click next to the list. Alternatively, run npm start in the Terminal Alt+F12 or double-click the start task in the npm tool window ( View | Tool Windows | npm ).
- Wait till the application is compiled and the Webpack development server is ready. The Run tool window or the Terminal shows the URL at which your application is running, by default it is http://localhost:3000/ . Click this link to view the application.
Thanks to the Webpack Hot Module Replacement, when the development server is running, your application is automatically reloaded as soon as you change any of the source files and save the updates.
Debug a React application
- Only for applications created with create-react-app .
- Debugging of JavaScript code is only supported in Google Chrome and in other Chromium-based browsers.
- Set the breakpoints in your code.
- Start the application in the development mode as described above and wait till the application is compiled and the development server is ready.
- Select the autogenerated Debug Application configuration from the list and click next to the list.
You can start a debugging session in different ways depending on where your application is running.
- If your application is running on localhost , you can also start the debugger from the built-in Terminal or from the Run tool window. See Debug applications running on localhost below.
- For debugging applications running on custom URLs, create a configuration of the type JavaScript Debug and specify the URL address at which your application is actually running. See Debug applications running on custom URLs below. This general workflow also works for applications running on localhost and for applications created with create-react-app.
Debug applications running on localhost
- Set the breakpoints in your code.
- Start the application in the development mode as described above and wait till the application is compiled and the Webpack development server is ready.
- The Run tool window or the Terminal shows the URL at which your application is running, by default it is http://localhost:3000/ . Hold Control+Shift and click this URL link. WebStorm starts a debugging session with an automatically generated Debug Application configuration of the type JavaScript Debug.
Debug applications running on custom URLs
- Set the breakpoints in your code.
- Start the application in the development mode as described above and wait till the application is compiled and the Webpack development server is ready.
- The Run tool window or the Terminal shows the URL at which your application is running. Copy this URL address, you will later specify it in a debug configuration. To view your application, just click the link.
- Create a JavaScript Debug configuration. To do that, go to Run | Edit Configurations on the main menu, click , and select JavaScript Debug from the list. In the Run/Debug Configuration: JavaScript Debug dialog, paste the saved URL in the URL field and save the configuration.
- To launch your newly created configuration, select it from the list of configurations and click next to the list.
When the first breakpoint is hit, switch to the Debug tool window and proceed as usual: step through the program, stop and resume program execution, examine it when suspended, explore the call stack and variables, set watches, evaluate variables, view actual HTML DOM, and so on.
Build a React application
You need to set up the build process if you installed React in an existing WebStorm project. Learn about various ways to configure a build pipeline for your React application from React official website.
If you created your application with create-react-app your development environment is already preconfigured to use Webpack and Babel.
Test a React application
You can run and debug Jest tests in React applications created with create-react-app. Before you start, make sure the react-scripts package is added to the dependencies object of your package.json .
You can run and debug Jest tests right from the editor, or from the Project tool window, or via a run/debug configuration. For more information, refer to Jest.
Run a test from the editor

- Click or in the gutter and select Run from the list. You can also see whether a test has passed or failed right in the editor, thanks to the test status icons and in the gutter.
To run all tests in a file, select this file in the Project tool window and then select Run ‘All in ‘ from its context menu.
Create a Jest run/debug configuration

- Open the Run/Debug Configuration dialog ( Run | Edit Configurations on the main menu), click in the left-hand pane, and select Jest from the list. The Run/Debug Configuration: Jest dialog opens. Alternatively, select a test file in the Project tool window and select Create from the context menu.
- Specify the Node interpreter to use and the working directory of the application. By default, the Working directory field shows the project root folder. To change this predefined setting, specify the path to the desired folder.
- In the Jest package field, specify the path to the react-scripts package.
- In the Jest options field, type —env=jsdom .
Run tests

- Select the Jest run/debug configuration from the list of configurations and click in the list or on the toolbar.
- Monitor test execution and analyze test results in the Test Runner tab of the Run tool window. For more information, refer to Explore test results.
Debug tests
- Select the Jest run/debug configuration from the list on the main toolbar and click to the right.
- In the Debug tool window that opens, proceed as usual: step through the tests, stop and resume test execution, examine the test when suspended, run JavaScript code snippets in the Console, and so on.
Known limitations
When you open an application during a debugging session for the first time, it may happen that some of the breakpoints in the code executed on page load are not hit. The reason is that to stop on a breakpoint in the original source code, WebStorm needs to get the source maps from the browser. However, the browser can pass these source maps only after the page has been fully loaded at least once. As a workaround, reload the page in the browser yourself.
