Рассказываем, что это за язык программирования — JavaScript, где его используют, насколько он популярен и с чего начать изучение JavaScript.
Раньше интерфейс сайтов состоял из текстов, ссылок и иллюстраций, а верстали его с помощью языков HTML и CSS.
Все изменилось с созданием JavaScript. Этот язык программирования сделал сайты интерактивными — то есть удобными для пользователя. Появились кнопки, формы, поля ввода и многое другое.
JavaScript (или по-другому JS) — это многофункциональный язык программирования. JavaScript используют не только для создания сайтов, но и для написания очень разных программ.
Содержание
Где используют JavaScript
Фронтенд веб-приложений
С помощью JavaScript разработчики создают веб-приложения — это программы, которые мы запускаем в браузере. К ним относятся почтовые клиенты, редакторы текста, социальные сети, видеохостинги и многое другое.
На JavaScript создают «внешний интерфейс» веб-приложений — фронтенд. С ним взаимодействует пользователь, нажимая на кнопки, плашки, меню.
На JavaScript написан код для популярных сервисов вроде Google Maps, Google Docs, Netflix, eBay.
Бэкенд веб-приложений
Кроме интерфейса, который видят пользователи, у веб-приложений есть и внутренняя часть — бэкенд. Это серверная часть приложения, в которой обычно хранятся базы данных.
У JavaScript есть Node.js — это не отдельный язык программирования, а среда исполнения JavaScript-кода на стороне сервера. С ее помощью можно выполнять операции или обращаться к базам данным.
JavaScript в связке с Node.js используют известные компании PayPal и Walmart для взаимодействия со своими серверами.
Расширения для браузера
Браузерные расширения — это мини-программы, которые состоят из кода, исполняющегося в браузере. Расширения помогают нам блокировать рекламу, скачивать видео или подсчитывать время, проведенное в интернете. И почти все они написаны на JavaScript.
Мобильные приложения
На JavaScript также пишут приложения для iOS и Android. Для этого есть специальные фреймворки — готовые наборы кода, «каркас» будущих приложений.
JavaScript-фреймворки вроде React Native помогают адаптировать код под мобильные платформы. Это позволяет создавать кроссплатформенные приложения — работающие и под iOS, и под Android — без необходимости нанимать разработчиков для каждой из этих систем и создавать две версии приложения.
На JavaScript написаны мобильные приложения Groupon и LinkedIn.
Игры
На JavaScript можно также писать простые игры. Обычно это браузерные бродилки, но иногда встречаются и интересные инди-проекты вроде «2048», PixelDefense, BrowserQuest.
Также существует Unity3d — среда сценариев для игры на основе JavaScript, которая работает вне браузеров.
Машинное обучение
Чаще всего в машинном обучении используют другие языки программирования, например Python. Однако иногда для этого применяют и JavaScript. Например, когда создают веб-приложения, включая те, которые визуализируют данные из моделей машинного обучения. Или когда пишут веб-страницу с формой, которая отправляет данные на сервер для обработки моделью машинного обучения.
Также для JavaScript уже написано несколько библиотек, — готовых наборов кода — на основе которых можно создать свою нейросеть. Это, например, Brain.js, Deep playground, Synaptic или FlappyLearning.
Базы данных
У JavaScript есть собственный инструмент Mongoose, позволяющий работать с популярной СУБД (системой управления базами данных) MongoDB. Есть и базы данных, например, Clusterpoint, к которым можно писать запросы на JavaScript.
Также есть GraphQL — язык структурированных запросов, позволяющий обращаться к базам данных. Он работает с React и другими популярными фреймворками JavaScript.
Интернет вещей
JavaScript используют и в Интернете вещей (Internet of Things, IoT) — это способ обмена информацией между устройствами, подключенными к одной сети. Примеры таких устройств нам хорошо знакомы: умные часы, фитнес-трекеры, пожарная сигнализация. Для них пишут программы на JavaScript с использованием фреймворков Cylon.js и Johnny-Five.
Популярность JavaScript
JavaScript регулярно входит в топы самых распространенных языков программирования. Согласно индексу TIOBE (создан на основе поисковых запросов) на сентябрь 2023 JavaScript занимает шестое место.
Еще интереснее исследование GitHub — это облачная площадка для хостинга IТ-проектов, которую используют почти все разработчики. Сервис собирает репрезентативную статистику по языкам программирования от профессионалов.
По данным GitHub, JavaScript совместно с TypeScript контролирует уже треть рынка разработки. В рейтинге языков для коммерческого использования он получил почетное первое место. На нем пишут 19% респондентов.
Интересно, что доля применения JavaScript за последние два года растет не только на фронтенде, но и на бэкенде. Сейчас JavaScript занимает седьмое место по популярности для бэкенда и первое для фронтенда. Причем на фронтенде он занимает 64,6% рынка.
В сегменте фулстек-разработки (то есть и фронтенда, и бэкенда) JavaScript занимает второе место и долю рынка в 20,6%.
Перспективы JavaScript
На JavaScript написаны огромные массивы кода. Переписать их вряд ли возможно в короткие сроки, да и пока незачем. А значит, в ближайшем будущем будут востребованы и специалисты, способные работать с JavaScript и поддерживать на нем программы.
Вокруг JavaScript сформировалась огромная экосистема библиотек и фреймворков, таких как React, Angular, и Vue.js. Эти инструменты делают разработку более эффективной. Владение ими — обязательное требование, которое есть во многих вакансиях.
Сейчас активно развивается и платформа Node.js, с помощью которой, как мы уже разобрались, можно писать серверные приложения. Так что бэкенд на JavaScript также будет востребован — подробнее об этом можно прочитать в другой нашей статье.
Google сейчас активно развивает сегмент прогрессивных веб-приложений — это смесь стандартного сайта и мобильного приложения. Таким решениям — progressive web apps — предрекают широкие перспективы. Они выгодны для бизнеса, поэтому имеют шанс на часть рынка, которая пока что принадлежит приложениям, разработанным только под одну платформу.
Все это в совокупности делает JavaScript перспективным языком программирования, который будет продолжать играть важную роль в разных сферах: от веб-разработки до геймдизайна.
Также полезно:
С чего начать изучение JavaScript и как это делать эффективно
Сколько зарабатывают программисты на JavaScript
В сентябре 2023 на hh.ru опубликовали 7 463 вакансии разработчиков на JavaScript.
В большинстве из них уровень зарплат не указан, но мы можем ориентироваться на исследования «Хабр Карьеры». Они основаны на информации работодателей, размещавших вакансии на сайте, и данных из опросов уже работающих программистов.
Фронтендеры на JavaScript зарабатывают:
- 72 000 рублей — джуны (начинающие)
- 169 000 рублей — мидлы (специалисты среднего уровня)
- 278 000 рублей — сеньоры (высококвалифицированные разработчики)
- 308 000 рублей — тимлиды (главы команд).
Бэкендеры на JavaScript зарабатывают:
- 70 000 рублей — джуны (начинающие)
- 168 000 рублей — мидлы (специалисты среднего уровня)
- 199 000 рублей — сеньоры (высококвалифицированные разработчики).
Фулстек-разработчики на JavaScript зарабатывают:
- 114 000 рублей — джуны (начинающие)
- 170 000 рублей — мидлы (специалисты среднего уровня)
- 273 000 рублей — сеньоры (высококвалифицированные разработчики)
- 264 000 рублей — тимлиды (главы команд).
Средняя зарплата разработчика на JavaScript в 2023 году — 180 000 рублей. При этом за последний год она выросла на 20%.
Что означает скрипт в названии JavaScript
В начале 90-х годов, когда был создан JavaScript, компания Netscape разрабатывала браузер под названием Netscape Navigator. По задумке, в браузере должна была быть возможность для создания интерактивных и динамических веб-страниц.
Компания наняла программиста Брендана Айка, чтобы разработать новый язык программирования. Он должен был называться LiveScript. Но из-за популярности языка Java (разработанного компанией Sun Microsystems), компания Netscape решила изменить его имя на JavaScript, чтобы привлечь внимание и ассоциировать его с Java.
JavaScript — это язык программирования, который используется для написания скриптов. Скрипты — это небольшие программы, которые выполняются внутри веб-браузера и добавляют интерактивность на веб-страницах. Например, с помощью JavaScript можно создавать валидацию форм, анимации, обработку событий (например, кликов мыши), и многое другое, что делает веб-страницы более динамичными и удобными для пользователей.
JavaScript — язык программирования, на котором можно написать скрипт. Это такая небольшая программа, которая выполняется внутри браузера и добавляет странице интерактивность. Благодаря скрипту и программам на JavaScript мы можем ставить лайки понравившемуся контенту, писать комментарии, делиться постами в социальных сетях и многое другое.
Чем JavaScript отличается Java
JavaScript и Java — это два разных языка программирования, их путают только из-за похожего названия.
Java — гораздо сложнее и тяжелее, для исполнения скриптов в браузере он не подходит. Java применяют для разработки серверных приложений, игр, банковских систем и программ для Big Data. Так что сферы применения у JavaScript и Java абсолютно разные.
JavaScript проще Java. Для сравнения, стандартная программа «Hello, world!» на JavaScript занимает всего одну строчку:
А на Java — пять:
Что касается востребованности, то оба языка уверенно входят в десятку самых популярных языков программирования.
В чем особенности JavaScript
Интеграция с HTML и CSS
HTML — язык разметки, а CSS — таблицы стилей. На них нельзя писать полноценный код: можно только размещать элементы на странице сайта.
А вот на JavaScript уже можно писать код, и этот язык интегрирован с языками разметки. То есть если нужно добавить в разметку скрипт, туда вписывают код на JavaScript.
Но чаще на страницу просто вставляют ссылку на файл: это позволяет использовать один скрипт на многих страницах и не редактировать каждую из них.
Мультипарадигменность
В программировании есть три основные парадигмы:
- Объектная — в ней оперируют функциями и набором данных, а код строят как систему отношений между ними.
- Функциональная — используют математические функции. Из-за отсутствия переменных, меняющих значения, результат запросов в этой парадигме всегда одинаковый.
- В императивной — используют переменные, которым прописывают значения, и инструкции, выполняющиеся последовательно.
Особенность JavaScript в том, что язык позволяет использовать любую из этих парадигм, что дает разработчику больший простор решений при написании кода.
Динамическая типизация
В языках программирования используют набор правил для разделения информации по классам — это называют типизацией. В JavaScript она динамическая. Это значит, что при создании переменной не нужно обязательно задавать ее тип, то есть относить к определенной группе данных.
Преимущества JavaScript
-
Не зависит от платформы. Если вы захотите запустить программу на JavaScript, не придется ставить дополнительных приложений: это сделает любой браузер. Другие языки потребуют установки компилятора, который исполнит код, или среды разработки (IDE).
-
Нетребовательный. Так как JavaScript исполняет код в браузере, программа на нем не нагружает сервер, а время ответа становится минимальным. Например, когда вы придумываете новый пароль — оповещение о том, что он недостаточно сложный появляется моментально. Это заслуга JavaScript.
-
Прост в изучении. JavaScript входит в топ самых легких языков программирования. При этом у него огромное комьюнити и большое количество инструментов, облегчающих жизнь разработчика.
Недостатки JavaScript
-
Проблема типов данных. Переменные в JavaScript могут менять свой тип данных в процессе выполнения программы. Представьте, что у нас есть переменная, в которой написано «1000». Эта запись может быть как числом, так и просто содержимым строки — текстом. Сложить строку и число в большинстве языков программирования — нельзя. А JavaScript может просто выдать результат вычислений. За счет этого в коде возникают непредвиденные ошибки, которые бывает сложно найти.
-
Слишком много дополнительных библиотек и фреймворков. Чтобы пользоваться всеми возможностями JavaScript, нужны дополнительные инструменты. Их выбор — сама по себе сложная задача. Нужно, чтобы они не конфликтовали друг с другом, правильно взаимодействовали, и их поддержка не прекратилась в один неприятный момент. Главный минус для начинающего программиста на JavaScript — чтобы начать карьеру в коммерческой разработке, потребуется изучить несколько инструментов. А затем для перехода в новый проект — еще несколько.
-
Проблемы с производительностью. Интерпретируемость JavaScript принято считать достоинством, но иногда она становится и недостатком. При обработке больших массивов данных операции могут выполняться менее эффективно, чем на других языках.
Пишем первую программу на JavaScript
По традиции обучение начинают с самой простой программы, которая умеет выводить на экран надпись: «Hello, world!». Чтобы создать ее на JavaScript, потребуется только браузер.
Откройте в браузере «Инструменты разработчика», нажав клавишу F12 или «Просмотр кода страницы». В браузере откроется панель, отыщите в ней вкладку «Консоль» и перейдите туда. В ней мы будем писать код.
Напишите в этой вкладке текст:
Затем нажмите Enter. В консоли появится эта надпись.
А теперь попробуйте ввести текст: alert("Hello, world!");. В браузере появится всплывающее окно. Мы часто можем взаимодействовать с ними, заходя на сайты. Например, они просят нас принять сбор сookies. Поздравляем — только что вы написали скрипт для такого окна.
Насколько сложно выучить JavaScript
Синтаксис JavaScript считают одним из самых простых. Именно поэтому он завоевал такую популярность на рынке: его сравнительно легко выучить.
К сильным сторонам обучения JavaScript относят развитую экосистему: у него обширное комьюнити, всесторонняя поддержка, решение многих типовых задач можно найти в Google или получить быстрый ответ на форуме.
В качестве стартового языка JavaScript выбирают из-за простоты и хорошей документированности.
Сложность JavaScript в том, что для участия в коммерческой разработке знаний только самого языка программирования недостаточно. Потребуется выучить верстку, понимать принцип отправки и получения данных от сервера, а также выучить хотя бы пару популярных библиотек и фреймворков.
С чего начать изучать JavaScript
«Современному джуну нужно освоить большой массив данных на JavaScript. Во-первых, это фундаментальные основы языка программирования: циклы, переменные, ветвления, константы, типы, классы конструктора и так далее. Во-вторых, нужно знать верстку, хотя бы в общих чертах, и уметь применять ее принципы на практике.
Еще пригодится понимание модели событий JavaScript, объекта и модели документа DOM. Также нужно научиться применять один из популярных фреймворков. Например, React или Vue.
И еще важно научиться делать запросы AJAX и HTTP-запросы из браузера. В этом можно разбираться бесконечно. Но джуну достаточно знать хотя бы то, как загрузить и отправить данные с API, использовать авторизацию и параметры запросов. С этой базой, если вы понимаете, что делаете, уже можно найти работу».
Также всем желающим изучить JavaScript мы рекомендуем прочитать эти книги:
Кроме книг для изучения JavaScript можно читать тематические статьи на Хабре и смотреть обучающие курсы на YouTube. Советуем также пройти бесплатный курс по основам JavaScript на Code Basics. А для большего погружения — найдите свое комьюнити и обменивайтесь опытом с другими учащимися. И не забывайте как можно больше практиковаться и писать код.
<!DOCTYPE html>
<html class="h-100" data-bs-theme="light" data-mantine-color-scheme="light" lang="ru" prefix="og: https://ogp.me/ns#">
<head>
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
<link crossorigin="true" href="https://cdn.hexlet.io" rel="preconnect">
<link href="https://mc.yandex.ru" rel="preconnect">
<meta content="aa2vrdtq64dub8knuf83lwywit311w" name="facebook-domain-verification">
<link href="/favicon.ico" rel="icon" sizes="any">
<link href="/favicon.svg" rel="icon" type="image/svg+xml">
<link href="/apple-touch-icon.png" rel="apple-touch-icon">
<link href="/manifest.webmanifest" rel="manifest">
<script>
//<![CDATA[
window.gon={};gon.ym_counter="25559621";gon.is_bot=true;gon.applications={};gon.current_user={"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26 20:39:50 UTC","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false};gon.token="tJsH2SQa9BMKKezrVxO3843rbBZWGkeBAbDd4jbx6RhbSszu1mRZc7xqyHNbHEeETeJBvF4tuSO8UEe2ZPYOdg";gon.locale="ru";gon.language="ru";gon.theme="light";gon.rails_env="production";gon.mobile=false;gon.google={"analytics_key":"UA-1360700-51","optimize_key":"GTM-5QDVFPF"};gon.captcha={"google_v3_site_key":"6LenGbgZAAAAAM7HbrDbn5JlizCSzPcS767c9vaY","yandex_site_key":"ysc1_Vyob5ZPPUdPBsu0ykt8bVFdzsfpoVjQChLGl2b4g19647a89","verification_failed":null};gon.social_signin=false;gon.typoreporter_google_form_id="1FAIpQLSeibfGq-KvWQ2Fyru-zkFFRVTLBuzXAHAoEyN1p49FtDmNoNA";
//]]>
</script>
<meta charset="utf-8">
<title>Что такое JavaScript: зачем он нужен, как выучить JS с нуля и найти работу</title>
<meta name="description" content="Информационный материал в блоге Хекслета: Язык программирования JavaScript: где его используют и почему он популярен (категория: Код). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<link rel="canonical" href="https://ru.hexlet.io/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov">
<meta property="og:title" content="Что такое JavaScript: зачем он нужен, как выучить JS с нуля и найти работу">
<meta property="og:description" content="Информационный материал в блоге Хекслета: Язык программирования JavaScript: где его используют и почему он популярен (категория: Код). Опытные наставники, практика на тренажерах, open-source проекты в портфолио. Индивидуальное и групповое онлайн-обучение в школе Хекслет.">
<meta property="og:image" content="https://ru.hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png">
<meta name="csrf-param" content="authenticity_token" />
<meta name="csrf-token" content="JqzkmfyF0JRpmJYdYsoQ7wnmblPpZbK7qCHJ0sbHc7bJfS-uDvt99N_bsoVuxeCYye9D-eFSTBkVwVOGlMCU2A" />
<script src="/vite/assets/inertia-DfXos102.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/preload-helper-BJ4cLWpC.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ahoy-DrlRQ-1D.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/analytics-cb8xch9l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Surface-DL2bpZA-.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/extends-C-EagtpE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/inheritsLoose-BBd-DCVI.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/objectWithoutPropertiesLoose-DRHXDhjp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/index.esm-DAqKOkZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Button-CGPUux8l.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/CloseButton-D1euiPao.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Group-BX48WcuU.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Loader-BQEY8g6v.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Modal-Cy3HByv7.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/OptionalPortal-1Hza5P2w.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Stack-CtjJzfw4.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Textarea-Ck64llAy.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/DirectionProvider-Dc9zdUke.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/events-DJQOhap0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-reduced-motion-D2owz4wa.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-disclosure-zKtK5W1r.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/use-hotkeys-Cnc_Rwkb.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/random-id-DOQyszCZ.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/exports-C_MrNx_T.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<link rel="stylesheet" href="/vite/assets/application-BqhCP46M.js" />
<script src="/vite/assets/application-Df9RExpe.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/autocomplete-VMNbxKGl.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/createPopper-C3aM9r1M.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/js.cookie-D1-O8zkX.js" as="script" crossorigin="anonymous"><link rel="stylesheet" href="/vite/assets/application-C8HjmMaq.css" media="screen" />
<script>
window.ym = function(){(ym.a=ym.a||[]).push(arguments)};
window.addEventListener('load', function() {
setTimeout(function() {
ym.l = 1*new Date();
ym(window.gon.ym_counter, "init", {
clickmap: true,
trackLinks: true,
accurateTrackBounce: true,
webvisor: true
});
// Загружаем скрипт
var k = document.createElement('script');
k.async = 1;
k.src = 'https://mc.yandex.ru/metrika/tag.js';
document.head.appendChild(k);
ym(window.gon.ym_counter, 'getClientID', function(clientID) {
window.ymClientId = clientID;
});
}, 1500);
});
</script>
<!-- Google Tag Manager - deferred -->
<script>
// dataLayer stub сразу — пуши работают до загрузки скрипта
window.dataLayer = window.dataLayer || [];
// Сам скрипт — отложенно после load
window.addEventListener('load', function() {
setTimeout(function() {
dataLayer.push({'gtm.start': new Date().getTime(), event: 'gtm.js'});
var j = document.createElement('script');
j.async = true;
j.src = 'https://www.googletagmanager.com/gtm.js?id=GTM-WK88TH';
document.head.appendChild(j);
}, 1500);
});
</script>
<!-- End Google Tag Manager -->
</head>
<body>
<noscript>
<div>
<img alt="" src="https://mc.yandex.ru/watch/25559621" style="position:absolute; left:-9999px;">
</div>
</noscript>
<header class="sticky-top bg-body">
<nav class="navbar navbar-expand-lg">
<div class="container-xxl">
<a class="navbar-brand" href="/"><img alt="Логотип Хекслета" height="24" src="https://ru.hexlet.io/vite/assets/logo_ru_light-BpiEA1LT.svg" width="96">
</a><button aria-controls="collapsable" aria-expanded="false" aria-label="Меню" class="navbar-toggler border-0 mb-0 mt-1" data-bs-target="#collapsable" data-bs-toggle="collapse">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="collapsable">
<ul class="navbar-nav mb-lg-0 mt-lg-1">
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
Все курсы
<span class="bi bi-chevron-down align-middle ms-1"></span>
</button>
<ul class="dropdown-menu">
<li>
<a class="dropdown-item d-flex py-2" href="/courses"><div class="fw-bold me-auto">Все что есть</div>
<div class="text-muted">117</div>
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные категории</b>
</li>
<li>
<a class="dropdown-item py-2" href="/courses_devops">Курсы по DevOps
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_data_analytics">Курсы по аналитике данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_programming">Курсы по программированию
</a></li>
<li>
<a class="dropdown-item py-2" href="/courses_testing">Курсы по тестированию
</a></li>
<li>
<hr class="dropdown-divider">
</li>
<li class="dropdown-item">
<b>Популярные курсы</b>
</li>
<li>
<a class="dropdown-item py-2" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/go">Go-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/java">Java-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/python">Python-разработчик
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/qa-auto-engineer-java">Автоматизатор тестирования на Java
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/data-analytics">Аналитик данных
</a></li>
<li>
<a class="dropdown-item py-2" href="/programs/frontend">Фронтенд-разработчик
</a></li>
</ul>
</li>
<li class="nav-item dropdown">
<button aria-haspopup class="btn nav-link" data-bs-toggle="dropdown" type="button">
О Хекслете
<span class="bi bi-chevron-down align-middle"></span>
</button>
<ul class="dropdown-menu bg-body">
<li>
<a class="dropdown-item py-2" href="/pages/about">О нас
</a></li>
<li>
<a class="dropdown-item py-2" href="/blog">Блог
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/hse-research" role="button">Результаты (Исследование)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://career.hexlet.io" role="button">Хекслет Карьера
</span></li>
<li>
<a class="dropdown-item py-2" href="/testimonials">Отзывы студентов
</a></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://t.me/hexlet_help_bot" role="button">Поддержка (В ТГ)
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/referal-program/?promo_creative=priglasite-druzei&promo_name=referal-program&promo_position=promo_position&promo_start=010724&promo_type=link" role="button">Реферальная программа
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://special.hexlet.io/certificate" role="button">Подарочные сертификаты
</span></li>
<li>
<span class="dropdown-item py-2 external-link" data-href="https://hh.ru/employer/4307094" role="button">Вакансии
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://b2b.hexlet.io" data-target="_blank" role="button">Компаниям
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexly.ru/" data-target="_blank" role="button">Колледж
</span></li>
<li>
<span class="dropdown-item d-flex external-link" rel="noopener noreferrer nofollow" data-href="https://hexlyschool.ru/" data-target="_blank" role="button">Частная школа
</span></li>
</ul>
</li>
<li><a class="nav-link" href="/subscription/new">Подписка</a></li>
</ul>
<ul class="navbar-nav flex-lg-row align-items-lg-center gap-2 ms-auto">
<li>
<a class="nav-link" aria-label="Переключить тему" href="/theme/switch?new_theme=dark"><span aria-hidden="true" class="bi bi-moon"></span>
</a></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="/u/new" role="button"><span>Регистрация</span>
</span></li>
<li>
<span data-target="_self" class="nav-link external-link" data-href="https://ru.hexlet.io/session/new" role="button"><span>Вход</span>
</span></li>
</ul>
</div>
</div>
</nav>
</header>
<div class="x-container-xxxl">
</div>
<main class="mb-6 min-vh-100 h-100">
<link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"/><link rel="preload" as="image" href="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png"/><link rel="preload" as="image" href="/vite/assets/development-BVihs_d5.png"/><div id="app" data-page="{"component":"web/blog/posts/show","props":{"errors":{},"locale":"ru","language":"ru","httpsHost":"https://ru.hexlet.io","host":"ru.hexlet.io","colorScheme":"light","auth":{"user":{"id":null,"last_viewed_notification_id":null,"email":null,"state":null,"first_name":"","last_name":"","created_at":"2026-02-26T20:39:50.257Z","current_program":null,"current_team":null,"full_name":"","guest":true,"can_use_paid_features":false,"is_hexlet_employee":false,"sanitized_phone_number":"","can_subscribe":true,"can_renew_education":false}},"cloudflareTurnstileSiteKey":"0x4AAAAAAA15KmeFXzd2H0Xo","vkIdClientId":"51586979","yandexIdClientId":"88d071f1d3384eb4bd1deb37910235c7","formAuthToken":"-GlAgL0uCZvuvE_zMnDA-vUAuJ17BBK4RVA6m8JubIEXuIu3T1Ck-1j_a2s-fzCNNQmVN3Mz7Br4sKDPkGmL7w","post":{"model_name":"BlogPost","category":{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},"creator":{"public_name":"Анастасия Уминская","id":694835,"is_tutor":false},"tags":[{"id":633,"slug":"javascript","name":"JavaScript"}],"id":416,"title":"Язык программирования JavaScript: где его используют и почему он популярен","slug":"stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov","state":"published","summary":"Рассказываем, что это за язык программирования — JavaScript, где его используют, насколько он популярен и с чего начать изучение JavaScript.","votes_count":61,"created_at":"2019-07-26T08:17:06.287Z","published_at":"2023-10-04T08:41:58.734Z","body":"**Рассказываем, что это за язык программирования — JavaScript, где его используют, насколько он популярен и с чего начать изучение JavaScript.**\r\n\r\nРаньше интерфейс сайтов состоял из текстов, ссылок и иллюстраций, а верстали его с помощью языков [HTML](https://ru.hexlet.io/blog/posts/chto-takoe-html-i-zachem-on-nuzhen?promo_name=blog&promo_position=right-bottom&promo_type=link) и CSS.\r\n\r\nВсе изменилось с созданием JavaScript. Этот язык программирования сделал сайты интерактивными — то есть удобными для пользователя. Появились кнопки, формы, поля ввода и многое другое.\r\n\r\nJavaScript (или по-другому JS) — это многофункциональный язык программирования. JavaScript используют не только для создания сайтов, но и для написания очень разных программ.\r\n\r\n::programs\r\n\r\n\r\n## Содержание\n\n## Где используют JavaScript\r\n\r\n### Фронтенд веб-приложений\r\n\r\nС помощью JavaScript разработчики создают веб-приложения — это программы, которые мы запускаем в браузере. К ним относятся почтовые клиенты, редакторы текста, социальные сети, видеохостинги и многое другое.\r\n\r\nНа JavaScript создают «внешний интерфейс» веб-приложений — фронтенд. С ним взаимодействует пользователь, нажимая на кнопки, плашки, меню.\r\n\r\nНа JavaScript написан код для популярных сервисов вроде Google Maps, Google Docs, Netflix, eBay.\r\n\r\n### Бэкенд веб-приложений\r\n\r\nКроме интерфейса, который видят пользователи, у веб-приложений есть и внутренняя часть — бэкенд. Это серверная часть приложения, в которой обычно хранятся базы данных.\r\n\r\nУ JavaScript есть Node.js — это не отдельный язык программирования, а среда исполнения JavaScript-кода на стороне сервера. С ее помощью можно выполнять операции или обращаться к базам данным.\r\n\r\nJavaScript в связке с Node.js используют известные компании PayPal и Walmart для взаимодействия со своими серверами.\r\n\r\n\r\n\r\n::posts\r\n\r\n### Расширения для браузера\r\n\r\nБраузерные расширения — это мини-программы, которые состоят из кода, исполняющегося в браузере. Расширения помогают нам блокировать рекламу, скачивать видео или подсчитывать время, проведенное в интернете. И почти все они написаны на JavaScript.\r\n\r\n### Мобильные приложения\r\n\r\nНа JavaScript также пишут приложения для iOS и Android. Для этого есть специальные фреймворки — готовые наборы кода, «каркас» будущих приложений.\r\n\r\nJavaScript-фреймворки вроде React Native помогают адаптировать код под мобильные платформы. Это позволяет создавать кроссплатформенные приложения — работающие и под iOS, и под Android — без необходимости нанимать разработчиков для каждой из этих систем и создавать две версии приложения.\r\n\r\nНа JavaScript написаны мобильные приложения Groupon и LinkedIn.\r\n\r\n### Игры\r\n\r\nНа JavaScript можно также писать простые игры. Обычно это браузерные бродилки, но иногда встречаются и интересные инди-проекты вроде «2048», PixelDefense, BrowserQuest.\r\n\r\nТакже существует Unity3d — среда сценариев для игры на основе JavaScript, которая работает вне браузеров.\r\n\r\n### Машинное обучение\r\n\r\nЧаще всего в машинном обучении используют другие языки программирования, например Python. Однако иногда для этого применяют и JavaScript. Например, когда создают веб-приложения, включая те, которые визуализируют данные из моделей машинного обучения. Или когда пишут веб-страницу с формой, которая отправляет данные на сервер для обработки моделью машинного обучения.\r\n\r\nТакже для JavaScript уже написано несколько библиотек, — готовых наборов кода — на основе которых можно создать свою нейросеть. Это, например, Brain.js, Deep playground, Synaptic или FlappyLearning.\r\n\r\n\r\n\r\n### Базы данных\r\n\r\nУ JavaScript есть собственный инструмент Mongoose, позволяющий работать с популярной СУБД (системой управления базами данных) MongoDB. Есть и базы данных, например, Clusterpoint, к которым можно писать запросы на JavaScript.\r\n\r\nТакже есть [GraphQL](https://ru.hexlet.io/blog/posts/chto-takoe-graphql-s-osnov-do-pervyh-zaprosov?promo_name=blog&promo_position=article-body&promo_type=link) — язык структурированных запросов, позволяющий обращаться к базам данных. Он работает с React и другими популярными фреймворками JavaScript.\r\n\r\n\r\n\r\n### Интернет вещей\r\n\r\nJavaScript используют и в Интернете вещей (Internet of Things, IoT) — это способ обмена информацией между устройствами, подключенными к одной сети. Примеры таких устройств нам хорошо знакомы: умные часы, фитнес-трекеры, пожарная сигнализация. Для них пишут программы на JavaScript с использованием фреймворков Cylon.js и Johnny-Five.\r\n\r\n## Популярность JavaScript\r\n\r\nJavaScript регулярно входит в топы самых распространенных языков программирования. Согласно [индексу TIOBE](https://www.tiobe.com/tiobe-index/) (создан на основе поисковых запросов) на сентябрь 2023 JavaScript занимает шестое место.\r\n\r\n\r\n\r\nЕще интереснее [исследование](https://habr.com/ru/articles/730954/) GitHub — это облачная площадка для хостинга IТ-проектов, которую используют почти все разработчики. Сервис собирает репрезентативную статистику по языкам программирования от профессионалов.\r\n\r\nПо данным GitHub, JavaScript совместно с TypeScript контролирует уже треть рынка разработки. В рейтинге языков для коммерческого использования он получил почетное первое место. На нем пишут 19% респондентов.\r\n\r\n\r\n\r\nИнтересно, что доля применения JavaScript за последние два года растет не только на фронтенде, но и на бэкенде. Сейчас JavaScript занимает седьмое место по популярности для бэкенда и первое для фронтенда. Причем на фронтенде он занимает 64,6% рынка.\r\n\r\nВ сегменте фулстек-разработки (то есть и фронтенда, и бэкенда) JavaScript занимает второе место и долю рынка в 20,6%.\r\n\r\n## Перспективы JavaScript\r\n\r\nНа JavaScript написаны огромные массивы кода. Переписать их вряд ли возможно в короткие сроки, да и пока незачем. А значит, в ближайшем будущем будут востребованы и специалисты, способные работать с JavaScript и поддерживать на нем программы.\r\n\r\nВокруг JavaScript сформировалась огромная экосистема библиотек и фреймворков, таких как React, Angular, и Vue.js. Эти инструменты делают разработку более эффективной. Владение ими — обязательное требование, которое есть во многих вакансиях.\r\n\r\nСейчас активно развивается и платформа Node.js, с помощью которой, как мы уже разобрались, можно писать серверные приложения. Так что бэкенд на JavaScript также будет востребован — подробнее об этом можно прочитать в другой нашей [статье](https://ru.hexlet.io/blog/posts/zachem-izuchat-node-js-ili-o-perspektivah-bekenda-na-javascript?promo_name=blog&promo_position=article-body&promo_type=link).\r\n\r\nGoogle сейчас активно развивает сегмент прогрессивных веб-приложений — это смесь стандартного сайта и мобильного приложения. Таким решениям — progressive web apps — предрекают широкие перспективы. Они выгодны для бизнеса, поэтому имеют шанс на часть рынка, которая пока что принадлежит приложениям, разработанным только под одну платформу.\r\n\r\nВсе это в совокупности делает JavaScript перспективным языком программирования, который будет продолжать играть важную роль в разных сферах: от веб-разработки до геймдизайна.\r\n\r\n\r\n> ### Также полезно:\r\n> С чего [начать изучение JavaScript](https://ru.hexlet.io/blog/posts/js-s-chego-nachat?promo_name=blog&promo_position=article-body&promo_type=link&promo_start=041024) и как это делать эффективно\r\n\r\n## Сколько зарабатывают программисты на JavaScript\r\n\r\nВ сентябре 2023 на hh.ru [опубликовали](https://spb.hh.ru/search/vacancy?text=JavaScript&salary=&ored_clusters=true&enable_snippets=true&area=113) 7 463 вакансии разработчиков на JavaScript.\r\n\r\nВ большинстве из них уровень зарплат не указан, но мы можем ориентироваться на [исследования](https://habr.com/ru/companies/habr_career/articles/746038/) «Хабр Карьеры». Они основаны на информации работодателей, размещавших вакансии на сайте, и данных из опросов уже работающих программистов.\r\n\r\nФронтендеры на JavaScript зарабатывают:\r\n\r\n- 72 000 рублей — джуны (начинающие)\r\n- 169 000 рублей — мидлы (специалисты среднего уровня)\r\n- 278 000 рублей — сеньоры (высококвалифицированные разработчики)\r\n- 308 000 рублей — тимлиды (главы команд).\r\n\r\nБэкендеры на JavaScript зарабатывают:\r\n\r\n- 70 000 рублей — джуны (начинающие)\r\n- 168 000 рублей — мидлы (специалисты среднего уровня)\r\n- 199 000 рублей — сеньоры (высококвалифицированные разработчики).\r\n\r\nФулстек-разработчики на JavaScript зарабатывают:\r\n\r\n- 114 000 рублей — джуны (начинающие)\r\n- 170 000 рублей — мидлы (специалисты среднего уровня)\r\n- 273 000 рублей — сеньоры (высококвалифицированные разработчики)\r\n- 264 000 рублей — тимлиды (главы команд).\r\n\r\nСредняя зарплата разработчика на JavaScript в 2023 году — 180 000 рублей. При этом за последний год она [выросла](https://habr.com/ru/specials/748058/) на 20%.\r\n\r\n\r\n\r\n## Что означает скрипт в названии JavaScript\r\n\r\nВ начале 90-х годов, когда был создан JavaScript, компания Netscape разрабатывала браузер под названием Netscape Navigator. По задумке, в браузере должна была быть возможность для создания интерактивных и динамических веб-страниц.\r\n\r\nКомпания наняла программиста Брендана Айка, чтобы разработать новый язык программирования. Он должен был называться LiveScript. Но из-за популярности языка Java (разработанного компанией Sun Microsystems), компания Netscape решила изменить его имя на JavaScript, чтобы привлечь внимание и ассоциировать его с Java.\r\n\r\nJavaScript — это язык программирования, который используется для написания скриптов. Скрипты — это небольшие программы, которые выполняются внутри веб-браузера и добавляют интерактивность на веб-страницах. Например, с помощью JavaScript можно создавать валидацию форм, анимации, обработку событий (например, кликов мыши), и многое другое, что делает веб-страницы более динамичными и удобными для пользователей.\r\n\r\nJavaScript — язык программирования, на котором можно написать скрипт. Это такая небольшая программа, которая выполняется внутри браузера и добавляет странице интерактивность. Благодаря скрипту и программам на JavaScript мы можем ставить лайки понравившемуся контенту, писать комментарии, делиться постами в социальных сетях и многое другое.\r\n\r\n\r\n\r\n## Чем JavaScript отличается Java\r\n\r\nJavaScript и Java — это два разных языка программирования, их путают только из-за похожего названия.\r\n\r\nJava — гораздо сложнее и тяжелее, для исполнения скриптов в браузере он не подходит. Java применяют для разработки серверных приложений, игр, банковских систем и программ для Big Data. Так что сферы применения у JavaScript и Java абсолютно разные.\r\n\r\nJavaScript проще Java. Для сравнения, стандартная программа «Hello, world!» на JavaScript занимает всего одну строчку:\r\n\r\n```javascript\r\nconsole.log(\"Hello, World!\");\r\n```\r\n\r\nА на Java — пять:\r\n\r\n```java\r\npublic class HelloWorld {\r\n public static void main(String[] args) {\r\n System.out.println(\"Hello, World!\");\r\n }\r\n}\r\n```\r\n\r\nЧто касается востребованности, то оба языка уверенно входят в десятку самых популярных языков программирования.\r\n\r\n\r\n\r\n## В чем особенности JavaScript\r\n\r\n### Интеграция с HTML и CSS\r\n\r\nHTML — язык разметки, а CSS — таблицы стилей. На них нельзя писать полноценный код: можно только размещать элементы на странице сайта.\r\n\r\nА вот на JavaScript уже можно писать код, и этот язык интегрирован с языками разметки. То есть если нужно добавить в разметку скрипт, туда вписывают код на JavaScript.\r\n\r\n```html\r\n<!DOCTYPE html>\r\n<html>\r\n<head>\r\n<script> Здесь может быть ваш скрипт </script>\r\n</head>\r\n```\r\n\r\nНо чаще на страницу просто вставляют ссылку на файл: это позволяет использовать один скрипт на многих страницах и не редактировать каждую из них.\r\n\r\n\r\n\r\n### Мультипарадигменность\r\n\r\nВ программировании есть три основные парадигмы:\r\n\r\n- Объектная — в ней оперируют функциями и набором данных, а код строят как систему отношений между ними.\r\n- Функциональная — используют математические функции. Из-за отсутствия переменных, меняющих значения, результат запросов в этой парадигме всегда одинаковый.\r\n- В императивной — используют переменные, которым прописывают значения, и инструкции, выполняющиеся последовательно.\r\n\r\nОсобенность JavaScript в том, что язык позволяет использовать любую из этих парадигм, что дает разработчику больший простор решений при написании кода.\r\n\r\n### Динамическая типизация\r\n\r\nВ языках программирования используют набор правил для разделения информации по классам — это называют типизацией. В JavaScript она динамическая. Это значит, что при создании переменной не нужно обязательно задавать ее тип, то есть относить к определенной группе данных.\r\n\r\n## Преимущества JavaScript\r\n\r\n- **Не зависит от платформы**. Если вы захотите запустить программу на JavaScript, не придется ставить дополнительных приложений: это сделает любой браузер. Другие языки потребуют установки компилятора, который исполнит код, или среды разработки (IDE).\r\n- **Нетребовательный**. Так как JavaScript исполняет код в браузере, программа на нем не нагружает сервер, а время ответа становится минимальным. Например, когда вы придумываете новый пароль — оповещение о том, что он недостаточно сложный появляется моментально. Это заслуга JavaScript.\r\n- **Прост в изучении**. JavaScript входит в топ самых легких языков программирования. При этом у него огромное комьюнити и большое количество инструментов, облегчающих жизнь разработчика.\r\n\r\n## Недостатки JavaScript\r\n\r\n- **Проблема типов данных**. Переменные в JavaScript могут менять свой тип данных в процессе выполнения программы. Представьте, что у нас есть переменная, в которой написано «1000». Эта запись может быть как числом, так и просто содержимым строки — текстом. Сложить строку и число в большинстве языков программирования — нельзя. А JavaScript может просто выдать результат вычислений. За счет этого в коде возникают непредвиденные ошибки, которые бывает сложно найти.\r\n\r\n```javascript\r\nconst sum = (num1, num2) => num1 + num2\r\nsum(1, 2) // 3\r\nsum('hello', 2) // 'hello2'\r\n```\r\n- **Слишком много дополнительных библиотек и фреймворков.** Чтобы пользоваться всеми возможностями JavaScript, нужны дополнительные инструменты. Их выбор — сама по себе сложная задача. Нужно, чтобы они не конфликтовали друг с другом, правильно взаимодействовали, и их поддержка не прекратилась в один неприятный момент. Главный минус для начинающего программиста на JavaScript — чтобы начать карьеру в коммерческой разработке, потребуется изучить несколько инструментов. А затем для перехода в новый проект — еще несколько.\r\n- **Проблемы с производительностью.** Интерпретируемость JavaScript принято считать достоинством, но иногда она становится и недостатком. При обработке больших массивов данных операции могут выполняться менее эффективно, чем на других языках.\r\n\r\n## Пишем первую программу на JavaScript\r\n\r\nПо традиции обучение начинают с самой простой программы, которая умеет выводить на экран надпись: «Hello, world!». Чтобы создать ее на JavaScript, потребуется только браузер.\r\n\r\nОткройте в браузере «Инструменты разработчика», нажав клавишу F12 или «Просмотр кода страницы». В браузере откроется панель, отыщите в ней вкладку «Консоль» и перейдите туда. В ней мы будем писать код.\r\n\r\nНапишите в этой вкладке текст:\r\n\r\n```javascript\r\nconsole.log(\"Hello, world!\");\r\n```\r\n\r\nЗатем нажмите Enter. В консоли появится эта надпись.\r\n\r\nА теперь попробуйте ввести текст: `alert(\"Hello, world!\")`;. В браузере появится всплывающее окно. Мы часто можем взаимодействовать с ними, заходя на сайты. Например, они просят нас принять сбор сookies. Поздравляем — только что вы написали скрипт для такого окна.\r\n\r\n\r\n\r\n## Насколько сложно выучить JavaScript\r\n\r\nСинтаксис JavaScript считают одним из самых простых. Именно поэтому он завоевал такую популярность на рынке: его сравнительно легко выучить.\r\n\r\nК сильным сторонам обучения JavaScript относят развитую экосистему: у него обширное комьюнити, всесторонняя поддержка, решение многих типовых задач можно найти в Google или получить быстрый ответ на форуме.\r\n\r\nВ качестве стартового языка JavaScript выбирают из-за простоты и хорошей документированности.\r\n\r\nСложность JavaScript в том, что для участия в коммерческой разработке знаний только самого языка программирования недостаточно. Потребуется выучить верстку, понимать принцип отправки и получения данных от сервера, а также выучить хотя бы пару популярных библиотек и фреймворков.\r\n\r\n## С чего начать изучать JavaScript\r\n\r\n\r\n\r\n«Современному джуну нужно освоить большой массив данных на JavaScript. Во-первых, это фундаментальные основы языка программирования: циклы, переменные, ветвления, константы, типы, классы конструктора и так далее. Во-вторых, нужно знать верстку, хотя бы в общих чертах, и уметь применять ее принципы на практике.\r\n\r\nЕще пригодится понимание модели событий JavaScript, объекта и модели документа DOM. Также нужно научиться применять один из популярных фреймворков. Например, React или Vue.\r\n\r\nИ еще важно научиться делать запросы AJAX и HTTP-запросы из браузера. В этом можно разбираться бесконечно. Но джуну достаточно знать хотя бы то, как загрузить и отправить данные с API, использовать авторизацию и параметры запросов. С этой базой, если вы понимаете, что делаете, уже можно найти работу».\r\n\r\nТакже всем желающим изучить JavaScript мы рекомендуем прочитать эти книги:\r\n\r\n- Дэвид Флэнаган «[JavaScript. Подробное руководство](https://www.livelib.ru/book/1000607178-javascript-podrobnoe-rukovodstvo-devid-flenagan)»\r\n- Дуглас Крокфорд «[Как устроен JavaScript](https://www.livelib.ru/book/1003163932-kak-ustroen-javascript-duglas-krokford)»\r\n- Алексей Васильев «[JavaScript в примерах и задачах](https://www.litres.ru/book/aleksey-nikolaevich-vasilev/javascript-v-primerah-i-zadachah-26336630/)».\r\n\r\nКроме книг для изучения JavaScript можно читать тематические статьи на [Хабре](https://habr.com/ru/articles/) и смотреть обучающие курсы на YouTube. Советуем также пройти [бесплатный курс по основам JavaScript](https://code-basics.com/ru/languages/javascript) на Code Basics. А для большего погружения — найдите свое [комьюнити](https://t.me/hexletcommunity) и обменивайтесь опытом с другими учащимися. И не забывайте как можно больше практиковаться и писать код.","reading_time":8,"url":"https://ru.hexlet.io/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov","cover_thumb_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbMTAwLDUwXSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--f0d4342fcdbdffa15c37fb02bfb423ac88d5c0c9/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png","cover_main_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png","related_stacks_count":5},"relatedPosts":[{"model_name":"BlogPost","id":362,"title":"Язык программирования PHP: рейтинг, сферы применения, прогнозы экспертов","slug":"zachem-izuchat-php-reyting-perspektivy-sfery-primeneniya","summary":"Рассказываем, зачем и где учить PHP, где его применяют, сколько зарабатывают PHP-разработчики, а также приводим мнения экспертов о перспективах и популярности языка. ","created_at":"2019-06-21T09:57:49.863Z","published_at":"2023-03-24T11:43:13.709Z","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcxNSwicHVyIjoiYmxvYl9pZCJ9fQ==--483469e30822f45e5959af1ca8e34c28c3fe28db/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%81%D1%87%D0%B5%D0%B3%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D1%82%D1%8C%D0%B8%D0%B7%D1%83%D1%87%D0%B0%D1%82%D1%8Cphp-2-01.png"},{"model_name":"BlogPost","id":12,"title":"Среды разработки: какие они бывают и чем отличаются друг от друга","slug":"environment","summary":"Сооснователь Хекслета Кирилл Мокевнин рассказывает, какие бывают среды разработки, как проводится контроль и испытание фичи и что такое интеграция.","created_at":"2016-08-23T14:10:57.533Z","published_at":"2023-03-21T13:40:16.878Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"},{"model_name":"BlogPost","id":2,"title":"10 советов, как более эффективно учиться в Хекслете","slug":"10-sovetov-o-tom-kak-bolee-effectivno-uchitsya-na-hexlet","summary":"Делимся десятью лайфхаками, которые повысят эффективность обучения на Хекслете.","created_at":"2016-07-29T16:52:44.532Z","published_at":"2022-11-07T14:23:05.569Z","cover_list_variant":"/vite/assets/blog_post-7eTyeLLt.webp"}],"category":{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},"mainStackCategory":{"id":2,"name":"Курсы по веб-разработке","slug":"web_development","short_name":"Веб-разработка","order":190,"state":"published","category_slug":"courses_web_development"},"categories":[{"id":6,"name":"Мотивация","slug":"motivation","state":"published","created_at":"2016-10-06T18:31:38.903Z"},{"id":3,"name":"Истории успеха","slug":"success","state":"published","created_at":"2016-07-30T12:57:18.308Z"},{"id":14,"name":"Дневник студента","slug":"student-diary","state":"published","created_at":"2019-02-25T13:27:09.471Z"},{"id":4,"name":"Код","slug":"code","state":"published","created_at":"2016-08-23T13:33:44.258Z"},{"id":12,"name":"Карьера","slug":"career","state":"published","created_at":"2017-07-21T15:42:21.481Z"}],"relatedLandings":[{"stack":{"id":12,"slug":"frontend","title":"Фронтенд-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":20,"duration_in_months":10},"id":17,"slug":"frontend","title":"Фронтенд-разработчик","subtitle":"Изучите HTML, CSS, JavaScript и React","subtitle_for_lists":"Изучите HTML, CSS, JavaScript и React","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"frontend","price_text":"от 6 792 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"},{"stack":{"id":29,"slug":"js-oop","title":"ООП на Javascript","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":4250,"duration_in_months":2},"id":46,"slug":"js-oop","title":"ООП на Javascript","subtitle":"Навык глубокого понимания архитектуры и написания чистого кода, позволяющий решать сложные задачи","subtitle_for_lists":"Изучите архитектуру и принципы чистого кода на JS","locale":"ru","current":true,"duration_in_months_text":"2 месяца","stack_slug":"js-oop","price_text":"от 3 900 ₽","duration_text":"2 месяца","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png"},{"stack":{"id":13,"slug":"backend","title":"Node.js-разработчик","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":130,"duration_in_months":10},"id":19,"slug":"backend","title":"Node.js-разработчик","subtitle":"Изучите JavaScript, Node.js, Fastify и REST API","subtitle_for_lists":"Изучите JavaScript, Node.js, Fastify и REST API","locale":"ru","current":true,"duration_in_months_text":"10 месяцев","stack_slug":"backend","price_text":"от 4 755 ₽","duration_text":"10 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png"},{"stack":{"id":43,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","audience":"for_beginners","start_type":"weekly","pricing_model":"purchase","priority":"high","kind":"profession","state":"published","stack_state":"finished","order":140,"duration_in_months":12},"id":74,"slug":"fullstack-javascript","title":"Fullstack-разработчик на Node.js","subtitle":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","subtitle_for_lists":"Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.","locale":"ru","current":true,"duration_in_months_text":"12 месяцев","stack_slug":"fullstack-javascript","price_text":"от 7 934 ₽","duration_text":"12 месяцев","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png"},{"stack":{"id":21,"slug":"js-async","title":"Асинхронное программирование на JS","audience":"for_programmers","start_type":"anytime","pricing_model":"subscription","priority":"medium","kind":"track","state":"published","stack_state":"finished","order":1650,"duration_in_months":1},"id":30,"slug":"js-async","title":"Асинхронное программирование на JS","subtitle":"Навык асинхронного программирования в JavaScript: писать быстрый код, расти в грейде и успешно проходить собеседования","subtitle_for_lists":"Навык работы с асинхронностью в JS","locale":"ru","current":true,"duration_in_months_text":"1 месяц","stack_slug":"js-async","price_text":"от 3 900 ₽","duration_text":"1 месяц","cover_list_variant":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png"}]},"url":"/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov","version":"8f286f6358a90a7bef2263b3a6edf5a90a94fa42","encryptHistory":false,"clearHistory":false}"><style data-mantine-styles="true">:root, :host{--mantine-font-family: Arial, sans-serif;--mantine-font-family-headings: Arial, sans-serif;--mantine-heading-font-weight: normal;--mantine-radius-default: 0rem;--mantine-primary-color-filled: var(--mantine-color-indigo-filled);--mantine-primary-color-filled-hover: var(--mantine-color-indigo-filled-hover);--mantine-primary-color-light: var(--mantine-color-indigo-light);--mantine-primary-color-light-hover: var(--mantine-color-indigo-light-hover);--mantine-primary-color-light-color: var(--mantine-color-indigo-light-color);--mantine-spacing-xxl: calc(4rem * var(--mantine-scale));--mantine-font-size-xs: 12px;--mantine-font-size-sm: 14px;--mantine-font-size-md: 16px;--mantine-font-size-lg: clamp(16.0000px, calc(15.2727px + 0.2273vw), 18.0000px);--mantine-font-size-xl: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-display-3: clamp(32.0000px, calc(26.1818px + 1.8182vw), 48.0000px);--mantine-font-size-display-2: clamp(36.0000px, calc(25.8182px + 3.1818vw), 64.0000px);--mantine-font-size-display-1: clamp(40.0000px, calc(25.4545px + 4.5455vw), 80.0000px);--mantine-font-size-h1: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-font-size-h2: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-font-size-h3: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-font-size-h4: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-font-size-h5: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-font-size-h6: 1rem;--mantine-primary-color-0: var(--mantine-color-indigo-0);--mantine-primary-color-1: var(--mantine-color-indigo-1);--mantine-primary-color-2: var(--mantine-color-indigo-2);--mantine-primary-color-3: var(--mantine-color-indigo-3);--mantine-primary-color-4: var(--mantine-color-indigo-4);--mantine-primary-color-5: var(--mantine-color-indigo-5);--mantine-primary-color-6: var(--mantine-color-indigo-6);--mantine-primary-color-7: var(--mantine-color-indigo-7);--mantine-primary-color-8: var(--mantine-color-indigo-8);--mantine-primary-color-9: var(--mantine-color-indigo-9);--mantine-color-red-0: #ffeaea;--mantine-color-red-1: #fed4d4;--mantine-color-red-2: #f4a7a8;--mantine-color-red-3: #ec7878;--mantine-color-red-4: #e55050;--mantine-color-red-5: #e03131;--mantine-color-red-6: #e02829;--mantine-color-red-7: #c71a1c;--mantine-color-red-8: #b21218;--mantine-color-red-9: #9c0411;--mantine-color-violet-0: #fce9ff;--mantine-color-violet-1: #f1cfff;--mantine-color-violet-2: #e09bff;--mantine-color-violet-3: #d16fff;--mantine-color-violet-4: #be37fe;--mantine-color-violet-5: #b51afe;--mantine-color-violet-6: #b009ff;--mantine-color-violet-7: #9b00e4;--mantine-color-violet-8: #8a00cc;--mantine-color-violet-9: #7800b3;--mantine-color-indigo-0: #edecff;--mantine-color-indigo-1: #d6d5fe;--mantine-color-indigo-2: #aaa9f4;--mantine-color-indigo-3: #7b79eb;--mantine-color-indigo-4: #5451e4;--mantine-color-indigo-5: #3b37e0;--mantine-color-indigo-6: #2d2adf;--mantine-color-indigo-7: #1f1ec7;--mantine-color-indigo-8: #1819b2;--mantine-color-indigo-9: #0c149e;--mantine-color-cyan-0: #dffdff;--mantine-color-cyan-1: #caf5ff;--mantine-color-cyan-2: #99e8ff;--mantine-color-cyan-3: #64daff;--mantine-color-cyan-4: #3ccffe;--mantine-color-cyan-5: #24c8fe;--mantine-color-cyan-6: #00c2ff;--mantine-color-cyan-7: #00ade4;--mantine-color-cyan-8: #009acd;--mantine-color-cyan-9: #0085b5;--mantine-color-green-0: #e9fdec;--mantine-color-green-1: #d7f6dc;--mantine-color-green-2: #b0eab9;--mantine-color-green-3: #86df94;--mantine-color-green-4: #62d574;--mantine-color-green-5: #4ccf5f;--mantine-color-green-6: #3fcc54;--mantine-color-green-7: #2fb344;--mantine-color-green-8: #25a03b;--mantine-color-green-9: #138a2e;--mantine-color-yellow-0: #fff7e2;--mantine-color-yellow-1: #ffeecd;--mantine-color-yellow-2: #ffdc9c;--mantine-color-yellow-3: #ffc966;--mantine-color-yellow-4: #feb93a;--mantine-color-yellow-5: #feae1e;--mantine-color-yellow-6: #ffa90f;--mantine-color-yellow-8: #ca8200;--mantine-color-yellow-9: #af7000;--mantine-h1-font-size: clamp(28.0000px, calc(23.6364px + 1.3636vw), 40.0000px);--mantine-h1-font-weight: normal;--mantine-h2-font-size: clamp(24.0000px, calc(21.0909px + 0.9091vw), 32.0000px);--mantine-h2-font-weight: normal;--mantine-h3-font-size: clamp(20.0000px, calc(17.0909px + 0.9091vw), 28.0000px);--mantine-h3-font-weight: normal;--mantine-h4-font-size: clamp(16.0000px, calc(13.0909px + 0.9091vw), 24.0000px);--mantine-h4-font-weight: normal;--mantine-h5-font-size: clamp(16.0000px, calc(14.5455px + 0.4545vw), 20.0000px);--mantine-h5-font-weight: normal;--mantine-h6-font-size: 1rem;--mantine-h6-font-weight: normal;}
:root[data-mantine-color-scheme="dark"], :host([data-mantine-color-scheme="dark"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-dark-filled: var(--mantine-color-dark-5);--mantine-color-dark-filled-hover: var(--mantine-color-dark-6);--mantine-color-dark-light: rgba(105, 105, 105, 0.15);--mantine-color-dark-light-hover: rgba(105, 105, 105, 0.2);--mantine-color-dark-light-color: var(--mantine-color-dark-0);--mantine-color-dark-outline: var(--mantine-color-dark-1);--mantine-color-dark-outline-hover: rgba(184, 184, 184, 0.05);--mantine-color-gray-filled: var(--mantine-color-gray-5);--mantine-color-gray-filled-hover: var(--mantine-color-gray-6);--mantine-color-gray-light: rgba(222, 226, 230, 0.15);--mantine-color-gray-light-hover: rgba(222, 226, 230, 0.2);--mantine-color-gray-light-color: var(--mantine-color-gray-0);--mantine-color-gray-outline: var(--mantine-color-gray-1);--mantine-color-gray-outline-hover: rgba(241, 243, 245, 0.05);--mantine-color-red-filled: var(--mantine-color-red-5);--mantine-color-red-filled-hover: var(--mantine-color-red-6);--mantine-color-red-light: rgba(236, 120, 120, 0.15);--mantine-color-red-light-hover: rgba(236, 120, 120, 0.2);--mantine-color-red-light-color: var(--mantine-color-red-0);--mantine-color-red-outline: var(--mantine-color-red-1);--mantine-color-red-outline-hover: rgba(254, 212, 212, 0.05);--mantine-color-pink-filled: var(--mantine-color-pink-5);--mantine-color-pink-filled-hover: var(--mantine-color-pink-6);--mantine-color-pink-light: rgba(250, 162, 193, 0.15);--mantine-color-pink-light-hover: rgba(250, 162, 193, 0.2);--mantine-color-pink-light-color: var(--mantine-color-pink-0);--mantine-color-pink-outline: var(--mantine-color-pink-1);--mantine-color-pink-outline-hover: rgba(255, 222, 235, 0.05);--mantine-color-grape-filled: var(--mantine-color-grape-5);--mantine-color-grape-filled-hover: var(--mantine-color-grape-6);--mantine-color-grape-light: rgba(229, 153, 247, 0.15);--mantine-color-grape-light-hover: rgba(229, 153, 247, 0.2);--mantine-color-grape-light-color: var(--mantine-color-grape-0);--mantine-color-grape-outline: var(--mantine-color-grape-1);--mantine-color-grape-outline-hover: rgba(243, 217, 250, 0.05);--mantine-color-violet-filled: var(--mantine-color-violet-5);--mantine-color-violet-filled-hover: var(--mantine-color-violet-6);--mantine-color-violet-light: rgba(209, 111, 255, 0.15);--mantine-color-violet-light-hover: rgba(209, 111, 255, 0.2);--mantine-color-violet-light-color: var(--mantine-color-violet-0);--mantine-color-violet-outline: var(--mantine-color-violet-1);--mantine-color-violet-outline-hover: rgba(241, 207, 255, 0.05);--mantine-color-indigo-filled: var(--mantine-color-indigo-5);--mantine-color-indigo-filled-hover: var(--mantine-color-indigo-6);--mantine-color-indigo-light: rgba(123, 121, 235, 0.15);--mantine-color-indigo-light-hover: rgba(123, 121, 235, 0.2);--mantine-color-indigo-light-color: var(--mantine-color-indigo-0);--mantine-color-indigo-outline: var(--mantine-color-indigo-1);--mantine-color-indigo-outline-hover: rgba(214, 213, 254, 0.05);--mantine-color-blue-filled: var(--mantine-color-blue-5);--mantine-color-blue-filled-hover: var(--mantine-color-blue-6);--mantine-color-blue-light: rgba(116, 192, 252, 0.15);--mantine-color-blue-light-hover: rgba(116, 192, 252, 0.2);--mantine-color-blue-light-color: var(--mantine-color-blue-0);--mantine-color-blue-outline: var(--mantine-color-blue-1);--mantine-color-blue-outline-hover: rgba(208, 235, 255, 0.05);--mantine-color-cyan-filled: var(--mantine-color-cyan-5);--mantine-color-cyan-filled-hover: var(--mantine-color-cyan-6);--mantine-color-cyan-light: rgba(100, 218, 255, 0.15);--mantine-color-cyan-light-hover: rgba(100, 218, 255, 0.2);--mantine-color-cyan-light-color: var(--mantine-color-cyan-0);--mantine-color-cyan-outline: var(--mantine-color-cyan-1);--mantine-color-cyan-outline-hover: rgba(202, 245, 255, 0.05);--mantine-color-teal-filled: var(--mantine-color-teal-5);--mantine-color-teal-filled-hover: var(--mantine-color-teal-6);--mantine-color-teal-light: rgba(99, 230, 190, 0.15);--mantine-color-teal-light-hover: rgba(99, 230, 190, 0.2);--mantine-color-teal-light-color: var(--mantine-color-teal-0);--mantine-color-teal-outline: var(--mantine-color-teal-1);--mantine-color-teal-outline-hover: rgba(195, 250, 232, 0.05);--mantine-color-green-filled: var(--mantine-color-green-5);--mantine-color-green-filled-hover: var(--mantine-color-green-6);--mantine-color-green-light: rgba(134, 223, 148, 0.15);--mantine-color-green-light-hover: rgba(134, 223, 148, 0.2);--mantine-color-green-light-color: var(--mantine-color-green-0);--mantine-color-green-outline: var(--mantine-color-green-1);--mantine-color-green-outline-hover: rgba(215, 246, 220, 0.05);--mantine-color-lime-filled: var(--mantine-color-lime-5);--mantine-color-lime-filled-hover: var(--mantine-color-lime-6);--mantine-color-lime-light: rgba(192, 235, 117, 0.15);--mantine-color-lime-light-hover: rgba(192, 235, 117, 0.2);--mantine-color-lime-light-color: var(--mantine-color-lime-0);--mantine-color-lime-outline: var(--mantine-color-lime-1);--mantine-color-lime-outline-hover: rgba(233, 250, 200, 0.05);--mantine-color-yellow-filled: var(--mantine-color-yellow-5);--mantine-color-yellow-filled-hover: var(--mantine-color-yellow-6);--mantine-color-yellow-light: rgba(255, 201, 102, 0.15);--mantine-color-yellow-light-hover: rgba(255, 201, 102, 0.2);--mantine-color-yellow-light-color: var(--mantine-color-yellow-0);--mantine-color-yellow-outline: var(--mantine-color-yellow-1);--mantine-color-yellow-outline-hover: rgba(255, 238, 205, 0.05);--mantine-color-orange-filled: var(--mantine-color-orange-5);--mantine-color-orange-filled-hover: var(--mantine-color-orange-6);--mantine-color-orange-light: rgba(255, 192, 120, 0.15);--mantine-color-orange-light-hover: rgba(255, 192, 120, 0.2);--mantine-color-orange-light-color: var(--mantine-color-orange-0);--mantine-color-orange-outline: var(--mantine-color-orange-1);--mantine-color-orange-outline-hover: rgba(255, 232, 204, 0.05);--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-9) 0%, var(--mantine-color-cyan-7) 100%);--app-color-surface: #2e2e2e;}
:root[data-mantine-color-scheme="light"], :host([data-mantine-color-scheme="light"]){--mantine-color-anchor: var(--mantine-color-text);--mantine-color-dimmed: #495057;--mantine-color-red-light: rgba(224, 40, 41, 0.1);--mantine-color-red-light-hover: rgba(224, 40, 41, 0.12);--mantine-color-red-outline-hover: rgba(224, 40, 41, 0.05);--mantine-color-violet-light: rgba(176, 9, 255, 0.1);--mantine-color-violet-light-hover: rgba(176, 9, 255, 0.12);--mantine-color-violet-outline-hover: rgba(176, 9, 255, 0.05);--mantine-color-indigo-light: rgba(45, 42, 223, 0.1);--mantine-color-indigo-light-hover: rgba(45, 42, 223, 0.12);--mantine-color-indigo-outline-hover: rgba(45, 42, 223, 0.05);--mantine-color-cyan-light: rgba(0, 194, 255, 0.1);--mantine-color-cyan-light-hover: rgba(0, 194, 255, 0.12);--mantine-color-cyan-outline-hover: rgba(0, 194, 255, 0.05);--mantine-color-green-light: rgba(63, 204, 84, 0.1);--mantine-color-green-light-hover: rgba(63, 204, 84, 0.12);--mantine-color-green-outline-hover: rgba(63, 204, 84, 0.05);--mantine-color-yellow-light: rgba(255, 169, 15, 0.1);--mantine-color-yellow-light-hover: rgba(255, 169, 15, 0.12);--mantine-color-yellow-outline-hover: rgba(255, 169, 15, 0.05);--app-color-surface: #f1f3f5;--app-cta-gradient: linear-gradient(90deg, var(--mantine-color-blue-filled) 0%, var(--mantine-color-cyan-5) 100%);}</style><style data-mantine-styles="classes">@media (max-width: 35.99375em) {.mantine-visible-from-xs {display: none !important;}}@media (min-width: 36em) {.mantine-hidden-from-xs {display: none !important;}}@media (max-width: 47.99375em) {.mantine-visible-from-sm {display: none !important;}}@media (min-width: 48em) {.mantine-hidden-from-sm {display: none !important;}}@media (max-width: 61.99375em) {.mantine-visible-from-md {display: none !important;}}@media (min-width: 62em) {.mantine-hidden-from-md {display: none !important;}}@media (max-width: 74.99375em) {.mantine-visible-from-lg {display: none !important;}}@media (min-width: 75em) {.mantine-hidden-from-lg {display: none !important;}}@media (max-width: 87.99375em) {.mantine-visible-from-xl {display: none !important;}}@media (min-width: 88em) {.mantine-hidden-from-xl {display: none !important;}}</style><script type="application/ld+json">{"@context":"https://schema.org","@type":"Article","author":"Анастасия Уминская","name":"Язык программирования JavaScript: где его используют и почему он популярен","datePublished":"2023-10-04T08:41:58.734Z","headline":"Рассказываем, что это за язык программирования — JavaScript, где его используют, насколько он популярен и с чего начать изучение JavaScript.","image":"https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":61}]}</script><div style="--container-size:var(--container-size-lg);margin-top:var(--mantine-spacing-xl);height:100%" class="m_7485cace mantine-Container-root" data-size="lg" data-strategy="block"><script type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"position":1,"@type":"ListItem","item":{"@id":"/blog","name":"Блог Хекслета"}},{"position":2,"@type":"ListItem","item":{"@id":"/blog/categories/code","name":"Код"}},{"position":3,"@type":"ListItem","item":{"@id":"/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov","name":"Язык программирования JavaScript: где его используют и почему он популярен"}}]}</script><div style="margin-bottom:var(--mantine-spacing-xs)" class="m_8b3717df mantine-Breadcrumbs-root"><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/"><div style="color:inherit" class="m_4451eb3a mantine-Center-root"><svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-home-link "><path d="M20.085 11.085l-8.085 -8.085l-9 9h2v7a2 2 0 0 0 2 2h4.5"></path><path d="M9 21v-6a2 2 0 0 1 2 -2h2a2 2 0 0 1 1.807 1.143"></path><path d="M20 21a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M20 16a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M15 19a1 1 0 1 0 2 0a1 1 0 1 0 -2 0"></path><path d="M21 16l-5 3l5 2"></path></svg></div></a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog">Блог Хекслета</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><a style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:inherit" class="mantine-focus-auto m_849cf0da m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-size="sm" data-underline="hover" href="/blog/categories/code">Код</a><div class="m_3b8f2208 mantine-Breadcrumbs-separator">/</div><p style="--text-fz:var(--mantine-font-size-sm);--text-lh:var(--mantine-line-height-sm);white-space:normal;color:var(--mantine-color-dimmed)" class="mantine-focus-auto m_f678d540 mantine-Breadcrumbs-breadcrumb m_b6d8b162 mantine-Text-root" data-size="sm">Язык программирования JavaScript: где его используют и почему он популярен</p></div><style data-mantine-styles="inline">.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}@media(min-width: 36em){.__m__-_R_eub_{margin-bottom:var(--mantine-spacing-xs);}}</style><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root __m__-_R_eub_"><style data-mantine-styles="inline">.__m__-_R_deub_{width:100%;}@media(min-width: 36em){.__m__-_R_deub_{width:70%;}}@media(min-width: 75em){.__m__-_R_deub_{width:75%;}}</style><div class="__m__-_R_deub_"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><h1 style="--title-fw:var(--mantine-h1-font-weight);--title-lh:var(--mantine-h1-line-height);--title-fz:var(--mantine-h1-font-size)" class="m_8a5d1357 mantine-Title-root" data-order="1">Язык программирования JavaScript: где его используют и почему он популярен</h1></div></div></div><div style="position:absolute;top:calc(18.75rem * var(--mantine-scale))" class=""></div><style data-mantine-styles="inline">.__m__-_R_2iub_{--grid-gutter:var(--mantine-spacing-xl);}</style><div class="m_410352e9 mantine-Grid-root __m__-_R_2iub_"><div class="m_dee7bd2f mantine-Grid-inner"><style data-mantine-styles="inline">.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:83.33333333333334%;--col-max-width:83.33333333333334%;}}@media(min-width: 62em){.__m__-_R_dmiub_{--col-flex-grow:auto;--col-flex-basis:66.66666666666667%;--col-max-width:66.66666666666667%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_dmiub_"><div style="--stack-gap:var(--mantine-spacing-md);--stack-align:stretch;--stack-justify:flex-start;margin-bottom:var(--mantine-spacing-xl)" class="m_6d731127 mantine-Stack-root"><div class=""><div style="--group-gap:var(--mantine-spacing-xs);--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-xl)" class="m_4081bf90 mantine-Group-root"><button style="--badge-height:var(--badge-height-sm);--badge-padding-x:var(--badge-padding-x-sm);--badge-fz:var(--badge-fz-sm);--badge-bg:var(--mantine-color-default);--badge-color:var(--mantine-color-default-color);--badge-bd:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);cursor:pointer;color:inherit" class="m_347db0ec mantine-Badge-root" data-variant="default" data-size="sm" type="button" aria-label="JavaScript"><span class="m_5add502a mantine-Badge-label">JavaScript</span></button></div><div style="--group-gap:calc(0.625rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-sm);color:var(--mantine-color-gray-text)" class="m_4081bf90 mantine-Group-root"><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap;margin-inline-end:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root">4 октября 2023 г.</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-clock "><path d="M3 12a9 9 0 1 0 18 0a9 9 0 0 0 -18 0"></path><path d="M12 7v5l3 3"></path></svg></div>8 минут</div><div style="--group-gap:calc(0.1875rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div>61</div></div><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img style="--image-radius:var(--mantine-radius-md);--image-object-fit:cover;width:100%;height:100%" class="m_9e117634 mantine-Image-root" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcwMywicHVyIjoiYmxvYl9pZCJ9fQ==--aa69869c906a992728ba7c26886fa1b715024424/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOlsxNDU2LDcyOF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--b2ecf6121248a24883cda19469732b47b57f4e80/%D1%8F%D0%B7%D1%8B%D0%BA%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8Fjavascript-01.png" alt="Язык программирования JavaScript: где его используют и почему он популярен"/></div></div><div role="link" tabindex="0" style="cursor:pointer"><button style="display:block;width:100%" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Присоединяйтесь к нашему Telegram-сообществу"><div style="background-color:light-dark(var(--mantine-color-gray-1), var(--mantine-color-dark-6))" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:flex-start;--group-wrap:wrap" class="m_4081bf90 mantine-Group-root"><div style="--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:auto;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-brand-telegram "><path d="M15 10l-4 4l6 6l4 -16l-18 7l4 2l2 6l3 -4"></path></svg></div>Присоединяйтесь к нашему Telegram-сообществу</div></div></button></div><div style="margin-bottom:var(--mantine-spacing-xl)" class="m_d08caa0 mantine-Typography-root"><p><strong>Рассказываем, что это за язык программирования — JavaScript, где его используют, насколько он популярен и с чего начать изучение JavaScript.</strong></p>
<p>Раньше интерфейс сайтов состоял из текстов, ссылок и иллюстраций, а верстали его с помощью языков <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/chto-takoe-html-i-zachem-on-nuzhen?promo_name=blog&promo_position=right-bottom&promo_type=link" rel="noopener noreferrer" target="_blank">HTML</a> и CSS.</p>
<p>Все изменилось с созданием JavaScript. Этот язык программирования сделал сайты интерактивными — то есть удобными для пользователя. Появились кнопки, формы, поля ввода и многое другое.</p>
<p>JavaScript (или по-другому JS) — это многофункциональный язык программирования. JavaScript используют не только для создания сайтов, но и для написания очень разных программ.</p>
<style data-mantine-styles="inline">.__m__-_R_9derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:70%;}@media(min-width: 36em){.__m__-_R_9derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_9derddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/frontend?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Фронтенд-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите HTML, CSS, JavaScript и React</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNywicHVyIjoiYmxvYl9pZCJ9fQ==--2d5cbbf5c3b4a73ae4b2c50632305d78f5872e4d/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Фронтенд-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 6 792 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/js-oop?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">2 месяца</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">ООП на Javascript</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите архитектуру и принципы чистого кода на JS</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAxOSwicHVyIjoiYmxvYl9pZCJ9fQ==--84efd2b6854b7000046e9ce06e6be85d38af5ab8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/JavaScript%20frameworks-cuate.png" alt="ООП на Javascript" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/backend?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Node.js-разработчик</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Изучите JavaScript, Node.js, Fastify и REST API</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MzcyNSwicHVyIjoiYmxvYl9pZCJ9fQ==--2e84f5f94140ee4e22019ac479c290ef48c3fac8/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Static%20website-cuate.png" alt="Node.js-разработчик" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 4 755 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/fullstack-javascript?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">12 месяцев</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">С нуля</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Fullstack-разработчик на Node.js</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Освоите JavaScript, Node.js, Fastify и React для фронтенда и бэкенда.</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDA0MywicHVyIjoiYmxvYl9pZCJ9fQ==--e2c6c0775e2308e42fbc5dc592ba2db0470632ca/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programmer-rafiki.png" alt="Fullstack-разработчик на Node.js" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 7 934 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/programs/js-async?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card" target="_blank"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="--group-gap:calc(0.25rem * var(--mantine-scale));--group-align:center;--group-justify:flex-start;--group-wrap:nowrap" class="m_4081bf90 mantine-Group-root"><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">1 месяц</span><span class="mantine-focus-auto m_b6d8b162 mantine-Text-root">·</span><span style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Для продвинутых</span></div><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h5);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Асинхронное программирование на JS</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Навык работы с асинхронностью в JS</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6NDAzMSwicHVyIjoiYmxvYl9pZCJ9fQ==--442647b9b09e64febe5646427471c53eb6f80b32/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX3RvX2xpbWl0IjpbNDAwLDQwMF0sInNhdmVyIjp7InF1YWxpdHkiOjg1fX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--5b6f46dacd1af664f27558553a58076185091823/Programming-pana.png" alt="Асинхронное программирование на JS" loading="eager"/></div><div style="--group-gap:var(--mantine-spacing-md);--group-align:end;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-xs)" class="m_4081bf90 mantine-Group-root"><p style="font-size:var(--mantine-font-size-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">от 3 900 ₽</p><p style="font-size:var(--mantine-font-size-sm)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses?promo_name=programs_list&promo_position=blog_post&promo_creative=catalog_card&promo_type=card"><div style="height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><h2 style="--title-fw:var(--mantine-h2-font-weight);--title-lh:var(--mantine-h2-line-height);--title-fz:var(--mantine-h2-font-size);margin-bottom:var(--mantine-spacing-md);font-size:var(--mantine-font-size-h3)" class="m_8a5d1357 mantine-Title-root" data-order="2" data-responsive="true">Каталог</h2><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Полный список доступных курсов по разным направлениям</p><div style="margin-top:auto" class=""><div class="m_4451eb3a mantine-Center-root"><img style="opacity:0.8;width:70%" class="m_9e117634 mantine-Image-root mantine-visible-from-xs" src="/vite/assets/development-BVihs_d5.png" alt="Orientation"/></div></div></div></a></div></div></div></div></div>
<h2 id="heading-2-1">Содержание</h2>
<ul>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-2">Где используют JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-11">Популярность JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-12">Перспективы JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-14">Сколько зарабатывают программисты на JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-15">Что означает скрипт в названии JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-16">Чем JavaScript отличается Java</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-17">В чем особенности JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-21">Преимущества JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-22">Недостатки JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-23">Пишем первую программу на JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-24">Насколько сложно выучить JavaScript</a></li>
<li><a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="#heading-2-25">С чего начать изучать JavaScript</a></li>
</ul>
<h2 id="heading-2-2">Где используют JavaScript</h2>
<h3 id="heading-3-3">Фронтенд веб-приложений</h3>
<p>С помощью JavaScript разработчики создают веб-приложения — это программы, которые мы запускаем в браузере. К ним относятся почтовые клиенты, редакторы текста, социальные сети, видеохостинги и многое другое.</p>
<p>На JavaScript создают «внешний интерфейс» веб-приложений — фронтенд. С ним взаимодействует пользователь, нажимая на кнопки, плашки, меню.</p>
<p>На JavaScript написан код для популярных сервисов вроде Google Maps, Google Docs, Netflix, eBay.</p>
<h3 id="heading-3-4">Бэкенд веб-приложений</h3>
<p>Кроме интерфейса, который видят пользователи, у веб-приложений есть и внутренняя часть — бэкенд. Это серверная часть приложения, в которой обычно хранятся базы данных.</p>
<p>У JavaScript есть Node.js — это не отдельный язык программирования, а среда исполнения JavaScript-кода на стороне сервера. С ее помощью можно выполнять операции или обращаться к базам данным.</p>
<p>JavaScript в связке с Node.js используют известные компании PayPal и Walmart для взаимодействия со своими серверами.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/3hdtlZk.png" alt="" loading="lazy"/></p>
<style data-mantine-styles="inline">.__m__-_R_13derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xs);--carousel-slide-size:80%;}@media(min-width: 36em){.__m__-_R_13derddmiub_{--carousel-slide-gap:var(--mantine-spacing-xl);--carousel-slide-size:50%;}}</style><div style="--carousel-control-size:calc(2.5rem * var(--mantine-scale));--carousel-controls-offset:var(--mantine-spacing-sm);margin-bottom:var(--mantine-spacing-lg);padding-block:var(--mantine-spacing-sm);background:var(--app-color-surface)" class="m_17884d0f mantine-Carousel-root responsiveClassName" data-orientation="horizontal" data-include-gap-in-size="true"><div class="m_39bc3463 mantine-Carousel-controls" data-orientation="horizontal"><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="previous" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button><button class="mantine-focus-auto m_64f58e10 mantine-Carousel-control m_87cf2631 mantine-UnstyledButton-root" type="button" data-inactive="true" data-type="next" tabindex="-1"><svg viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg" style="transform:rotate(-90deg);width:calc(1rem * var(--mantine-scale));height:calc(1rem * var(--mantine-scale));display:block"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></button></div><div class="m_a2dae653 mantine-Carousel-viewport" data-type="media"><div class="m_fcd81474 mantine-Carousel-container __m__-_R_13derddmiub_" data-orientation="horizontal"><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/zachem-izuchat-php-reyting-perspektivy-sfery-primeneniya"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="https://hexlet.io/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTcxNSwicHVyIjoiYmxvYl9pZCJ9fQ==--483469e30822f45e5959af1ca8e34c28c3fe28db/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJ3ZWJwIiwicmVzaXplX2FuZF9wYWQiOls3MDgsMzU0XSwic2F2ZXIiOnsicXVhbGl0eSI6ODV9fSwicHVyIjoidmFyaWF0aW9uIn19--324dc52aa55ebe818c2a887ebcb832b9ad1c0381/%D1%81%D1%87%D0%B5%D0%B3%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D1%82%D1%8C%D0%B8%D0%B7%D1%83%D1%87%D0%B0%D1%82%D1%8Cphp-2-01.png" loading="lazy" alt="Язык программирования PHP: рейтинг, сферы применения, прогнозы экспертов"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Язык программирования PHP: рейтинг, сферы применения, прогнозы экспертов</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Рассказываем, зачем и где учить PHP, где его применяют, сколько зарабатывают PHP-разработчики, а ...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">24 марта 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/environment"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="Среды разработки: какие они бывают и чем отличаются друг от друга"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Среды разработки: какие они бывают и чем отличаются друг от друга</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Сооснователь Хекслета Кирилл Мокевнин рассказывает, какие бывают среды разработки, как проводится...</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">21 марта 2023 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div><div class="m_d98df724 mantine-Carousel-slide" data-orientation="horizontal"><div tabindex="0" style="cursor:pointer;height:100%"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/10-sovetov-o-tom-kak-bolee-effectivno-uchitsya-na-hexlet"><div style="padding-top:0rem;height:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root" data-with-border="true"><div style="margin-bottom:var(--mantine-spacing-sm)" class="m_599a2148 mantine-Card-section" data-first-section="true"><div style="--ar-ratio:2" class="m_71ac47fc mantine-AspectRatio-root"><img class="m_9e117634 mantine-Image-root" src="/vite/assets/blog_post-7eTyeLLt.webp" loading="lazy" alt="10 советов, как более эффективно учиться в Хекслете"/></div></div><p style="margin-bottom:var(--mantine-spacing-xs);font-size:var(--mantine-font-size-lg);font-weight:bold" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">10 советов, как более эффективно учиться в Хекслете</p><p style="margin-bottom:auto" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Делимся десятью лайфхаками, которые повысят эффективность обучения на Хекслете.</p><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-top:var(--mantine-spacing-lg);font-size:var(--mantine-font-size-sm)" class="m_4081bf90 mantine-Group-root">7 ноября 2022 г.<p style="font-size:inherit" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></div></a></div></div></div></div></div>
<h3 id="heading-3-5">Расширения для браузера</h3>
<p>Браузерные расширения — это мини-программы, которые состоят из кода, исполняющегося в браузере. Расширения помогают нам блокировать рекламу, скачивать видео или подсчитывать время, проведенное в интернете. И почти все они написаны на JavaScript.</p>
<h3 id="heading-3-6">Мобильные приложения</h3>
<p>На JavaScript также пишут приложения для iOS и Android. Для этого есть специальные фреймворки — готовые наборы кода, «каркас» будущих приложений.</p>
<p>JavaScript-фреймворки вроде React Native помогают адаптировать код под мобильные платформы. Это позволяет создавать кроссплатформенные приложения — работающие и под iOS, и под Android — без необходимости нанимать разработчиков для каждой из этих систем и создавать две версии приложения.</p>
<p>На JavaScript написаны мобильные приложения Groupon и LinkedIn.</p>
<h3 id="heading-3-7">Игры</h3>
<p>На JavaScript можно также писать простые игры. Обычно это браузерные бродилки, но иногда встречаются и интересные инди-проекты вроде «2048», PixelDefense, BrowserQuest.</p>
<p>Также существует Unity3d — среда сценариев для игры на основе JavaScript, которая работает вне браузеров.</p>
<h3 id="heading-3-8">Машинное обучение</h3>
<p>Чаще всего в машинном обучении используют другие языки программирования, например Python. Однако иногда для этого применяют и JavaScript. Например, когда создают веб-приложения, включая те, которые визуализируют данные из моделей машинного обучения. Или когда пишут веб-страницу с формой, которая отправляет данные на сервер для обработки моделью машинного обучения.</p>
<p>Также для JavaScript уже написано несколько библиотек, — готовых наборов кода — на основе которых можно создать свою нейросеть. Это, например, Brain.js, Deep playground, Synaptic или FlappyLearning.</p>
<h3 id="heading-3-9">Базы данных</h3>
<p>У JavaScript есть собственный инструмент Mongoose, позволяющий работать с популярной СУБД (системой управления базами данных) MongoDB. Есть и базы данных, например, Clusterpoint, к которым можно писать запросы на JavaScript.</p>
<p>Также есть <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/chto-takoe-graphql-s-osnov-do-pervyh-zaprosov?promo_name=blog&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">GraphQL</a> — язык структурированных запросов, позволяющий обращаться к базам данных. Он работает с React и другими популярными фреймворками JavaScript.</p>
<h3 id="heading-3-10">Интернет вещей</h3>
<p>JavaScript используют и в Интернете вещей (Internet of Things, IoT) — это способ обмена информацией между устройствами, подключенными к одной сети. Примеры таких устройств нам хорошо знакомы: умные часы, фитнес-трекеры, пожарная сигнализация. Для них пишут программы на JavaScript с использованием фреймворков Cylon.js и Johnny-Five.</p>
<h2 id="heading-2-11">Популярность JavaScript</h2>
<p>JavaScript регулярно входит в топы самых распространенных языков программирования. Согласно <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.tiobe.com/tiobe-index/" rel="noopener noreferrer" target="_blank">индексу TIOBE</a> (создан на основе поисковых запросов) на сентябрь 2023 JavaScript занимает шестое место.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/aGg3VFX.png" alt="" loading="lazy"/></p>
<p>Еще интереснее <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://habr.com/ru/articles/730954/" rel="noopener noreferrer" target="_blank">исследование</a> GitHub — это облачная площадка для хостинга IТ-проектов, которую используют почти все разработчики. Сервис собирает репрезентативную статистику по языкам программирования от профессионалов.</p>
<p>По данным GitHub, JavaScript совместно с TypeScript контролирует уже треть рынка разработки. В рейтинге языков для коммерческого использования он получил почетное первое место. На нем пишут 19% респондентов.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/tXf9H53.png" alt="" loading="lazy"/></p>
<p>Интересно, что доля применения JavaScript за последние два года растет не только на фронтенде, но и на бэкенде. Сейчас JavaScript занимает седьмое место по популярности для бэкенда и первое для фронтенда. Причем на фронтенде он занимает 64,6% рынка.</p>
<p>В сегменте фулстек-разработки (то есть и фронтенда, и бэкенда) JavaScript занимает второе место и долю рынка в 20,6%.</p>
<h2 id="heading-2-12">Перспективы JavaScript</h2>
<p>На JavaScript написаны огромные массивы кода. Переписать их вряд ли возможно в короткие сроки, да и пока незачем. А значит, в ближайшем будущем будут востребованы и специалисты, способные работать с JavaScript и поддерживать на нем программы.</p>
<p>Вокруг JavaScript сформировалась огромная экосистема библиотек и фреймворков, таких как React, Angular, и Vue.js. Эти инструменты делают разработку более эффективной. Владение ими — обязательное требование, которое есть во многих вакансиях.</p>
<p>Сейчас активно развивается и платформа Node.js, с помощью которой, как мы уже разобрались, можно писать серверные приложения. Так что бэкенд на JavaScript также будет востребован — подробнее об этом можно прочитать в другой нашей <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/zachem-izuchat-node-js-ili-o-perspektivah-bekenda-na-javascript?promo_name=blog&promo_position=article-body&promo_type=link" rel="noopener noreferrer" target="_blank">статье</a>.</p>
<p>Google сейчас активно развивает сегмент прогрессивных веб-приложений — это смесь стандартного сайта и мобильного приложения. Таким решениям — progressive web apps — предрекают широкие перспективы. Они выгодны для бизнеса, поэтому имеют шанс на часть рынка, которая пока что принадлежит приложениям, разработанным только под одну платформу.</p>
<p>Все это в совокупности делает JavaScript перспективным языком программирования, который будет продолжать играть важную роль в разных сферах: от веб-разработки до геймдизайна.</p>
<blockquote>
<h3 id="heading-3-13">Также полезно:</h3>
<p>С чего <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://ru.hexlet.io/blog/posts/js-s-chego-nachat?promo_name=blog&promo_position=article-body&promo_type=link&promo_start=041024" rel="noopener noreferrer" target="_blank">начать изучение JavaScript</a> и как это делать эффективно</p>
</blockquote>
<h2 id="heading-2-14">Сколько зарабатывают программисты на JavaScript</h2>
<p>В сентябре 2023 на hh.ru <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://spb.hh.ru/search/vacancy?text=JavaScript&salary=&ored_clusters=true&enable_snippets=true&area=113" rel="noopener noreferrer" target="_blank">опубликовали</a> 7 463 вакансии разработчиков на JavaScript.</p>
<p>В большинстве из них уровень зарплат не указан, но мы можем ориентироваться на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://habr.com/ru/companies/habr_career/articles/746038/" rel="noopener noreferrer" target="_blank">исследования</a> «Хабр Карьеры». Они основаны на информации работодателей, размещавших вакансии на сайте, и данных из опросов уже работающих программистов.</p>
<p>Фронтендеры на JavaScript зарабатывают:</p>
<ul>
<li>72 000 рублей — джуны (начинающие)</li>
<li>169 000 рублей — мидлы (специалисты среднего уровня)</li>
<li>278 000 рублей — сеньоры (высококвалифицированные разработчики)</li>
<li>308 000 рублей — тимлиды (главы команд).</li>
</ul>
<p>Бэкендеры на JavaScript зарабатывают:</p>
<ul>
<li>70 000 рублей — джуны (начинающие)</li>
<li>168 000 рублей — мидлы (специалисты среднего уровня)</li>
<li>199 000 рублей — сеньоры (высококвалифицированные разработчики).</li>
</ul>
<p>Фулстек-разработчики на JavaScript зарабатывают:</p>
<ul>
<li>114 000 рублей — джуны (начинающие)</li>
<li>170 000 рублей — мидлы (специалисты среднего уровня)</li>
<li>273 000 рублей — сеньоры (высококвалифицированные разработчики)</li>
<li>264 000 рублей — тимлиды (главы команд).</li>
</ul>
<p>Средняя зарплата разработчика на JavaScript в 2023 году — 180 000 рублей. При этом за последний год она <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://habr.com/ru/specials/748058/" rel="noopener noreferrer" target="_blank">выросла</a> на 20%.</p>
<h2 id="heading-2-15">Что означает скрипт в названии JavaScript</h2>
<p>В начале 90-х годов, когда был создан JavaScript, компания Netscape разрабатывала браузер под названием Netscape Navigator. По задумке, в браузере должна была быть возможность для создания интерактивных и динамических веб-страниц.</p>
<p>Компания наняла программиста Брендана Айка, чтобы разработать новый язык программирования. Он должен был называться LiveScript. Но из-за популярности языка Java (разработанного компанией Sun Microsystems), компания Netscape решила изменить его имя на JavaScript, чтобы привлечь внимание и ассоциировать его с Java.</p>
<p>JavaScript — это язык программирования, который используется для написания скриптов. Скрипты — это небольшие программы, которые выполняются внутри веб-браузера и добавляют интерактивность на веб-страницах. Например, с помощью JavaScript можно создавать валидацию форм, анимации, обработку событий (например, кликов мыши), и многое другое, что делает веб-страницы более динамичными и удобными для пользователей.</p>
<p>JavaScript — язык программирования, на котором можно написать скрипт. Это такая небольшая программа, которая выполняется внутри браузера и добавляет странице интерактивность. Благодаря скрипту и программам на JavaScript мы можем ставить лайки понравившемуся контенту, писать комментарии, делиться постами в социальных сетях и многое другое.</p>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/rwISDpG.png" alt="" loading="lazy"/></p>
<h2 id="heading-2-16">Чем JavaScript отличается Java</h2>
<p>JavaScript и Java — это два разных языка программирования, их путают только из-за похожего названия.</p>
<p>Java — гораздо сложнее и тяжелее, для исполнения скриптов в браузере он не подходит. Java применяют для разработки серверных приложений, игр, банковских систем и программ для Big Data. Так что сферы применения у JavaScript и Java абсолютно разные.</p>
<p>JavaScript проще Java. Для сравнения, стандартная программа «Hello, world!» на JavaScript занимает всего одну строчку:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">console.log("Hello, World!");</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>А на Java — пять:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>Что касается востребованности, то оба языка уверенно входят в десятку самых популярных языков программирования.</p>
<h2 id="heading-2-17">В чем особенности JavaScript</h2>
<h3 id="heading-3-18">Интеграция с HTML и CSS</h3>
<p>HTML — язык разметки, а CSS — таблицы стилей. На них нельзя писать полноценный код: можно только размещать элементы на странице сайта.</p>
<p>А вот на JavaScript уже можно писать код, и этот язык интегрирован с языками разметки. То есть если нужно добавить в разметку скрипт, туда вписывают код на JavaScript.</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code"><!DOCTYPE html>
<html>
<head>
<script> Здесь может быть ваш скрипт </script>
</head></code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>Но чаще на страницу просто вставляют ссылку на файл: это позволяет использовать один скрипт на многих страницах и не редактировать каждую из них.</p>
<h3 id="heading-3-19">Мультипарадигменность</h3>
<p>В программировании есть три основные парадигмы:</p>
<ul>
<li>Объектная — в ней оперируют функциями и набором данных, а код строят как систему отношений между ними.</li>
<li>Функциональная — используют математические функции. Из-за отсутствия переменных, меняющих значения, результат запросов в этой парадигме всегда одинаковый.</li>
<li>В императивной — используют переменные, которым прописывают значения, и инструкции, выполняющиеся последовательно.</li>
</ul>
<p>Особенность JavaScript в том, что язык позволяет использовать любую из этих парадигм, что дает разработчику больший простор решений при написании кода.</p>
<h3 id="heading-3-20">Динамическая типизация</h3>
<p>В языках программирования используют набор правил для разделения информации по классам — это называют типизацией. В JavaScript она динамическая. Это значит, что при создании переменной не нужно обязательно задавать ее тип, то есть относить к определенной группе данных.</p>
<h2 id="heading-2-21">Преимущества JavaScript</h2>
<ul>
<li><strong>Не зависит от платформы</strong>. Если вы захотите запустить программу на JavaScript, не придется ставить дополнительных приложений: это сделает любой браузер. Другие языки потребуют установки компилятора, который исполнит код, или среды разработки (IDE).</li>
<li><strong>Нетребовательный</strong>. Так как JavaScript исполняет код в браузере, программа на нем не нагружает сервер, а время ответа становится минимальным. Например, когда вы придумываете новый пароль — оповещение о том, что он недостаточно сложный появляется моментально. Это заслуга JavaScript.</li>
<li><strong>Прост в изучении</strong>. JavaScript входит в топ самых легких языков программирования. При этом у него огромное комьюнити и большое количество инструментов, облегчающих жизнь разработчика.</li>
</ul>
<h2 id="heading-2-22">Недостатки JavaScript</h2>
<ul>
<li><strong>Проблема типов данных</strong>. Переменные в JavaScript могут менять свой тип данных в процессе выполнения программы. Представьте, что у нас есть переменная, в которой написано «1000». Эта запись может быть как числом, так и просто содержимым строки — текстом. Сложить строку и число в большинстве языков программирования — нельзя. А JavaScript может просто выдать результат вычислений. За счет этого в коде возникают непредвиденные ошибки, которые бывает сложно найти.</li>
</ul>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">const sum = (num1, num2) => num1 + num2
sum(1, 2) // 3
sum('hello', 2) // 'hello2'</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<ul>
<li><strong>Слишком много дополнительных библиотек и фреймворков.</strong> Чтобы пользоваться всеми возможностями JavaScript, нужны дополнительные инструменты. Их выбор — сама по себе сложная задача. Нужно, чтобы они не конфликтовали друг с другом, правильно взаимодействовали, и их поддержка не прекратилась в один неприятный момент. Главный минус для начинающего программиста на JavaScript — чтобы начать карьеру в коммерческой разработке, потребуется изучить несколько инструментов. А затем для перехода в новый проект — еще несколько.</li>
<li><strong>Проблемы с производительностью.</strong> Интерпретируемость JavaScript принято считать достоинством, но иногда она становится и недостатком. При обработке больших массивов данных операции могут выполняться менее эффективно, чем на других языках.</li>
</ul>
<h2 id="heading-2-23">Пишем первую программу на JavaScript</h2>
<p>По традиции обучение начинают с самой простой программы, которая умеет выводить на экран надпись: «Hello, world!». Чтобы создать ее на JavaScript, потребуется только браузер.</p>
<p>Откройте в браузере «Инструменты разработчика», нажав клавишу F12 или «Просмотр кода страницы». В браузере откроется панель, отыщите в ней вкладку «Консоль» и перейдите туда. В ней мы будем писать код.</p>
<p>Напишите в этой вкладке текст:</p>
<div style="margin-bottom:var(--mantine-spacing-lg)" class="m_e597c321 mantine-CodeHighlight-codeHighlight" dir="ltr"><div class="m_be7e9c9c mantine-CodeHighlight-controls"><button style="--ai-bg:transparent;--ai-hover:transparent;--ai-color:inherit;--ai-bd:none" class="mantine-focus-auto mantine-active m_d498bab7 mantine-CodeHighlight-control m_8d3f4000 mantine-ActionIcon-root m_87cf2631 mantine-UnstyledButton-root" data-variant="none" type="button" aria-label="Copy code"><span class="m_8d3afb97 mantine-ActionIcon-icon"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M8 8m0 2a2 2 0 0 1 2 -2h8a2 2 0 0 1 2 2v8a2 2 0 0 1 -2 2h-8a2 2 0 0 1 -2 -2z"></path><path d="M16 8v-2a2 2 0 0 0 -2 -2h-8a2 2 0 0 0 -2 2v8a2 2 0 0 0 2 2h2"></path></svg></span></button></div><div style="--scrollarea-scrollbar-size:calc(0.25rem * var(--mantine-scale));--sa-corner-width:0px;--sa-corner-height:0px" class="m_f744fd40 mantine-CodeHighlight-scrollarea m_d57069b5 mantine-ScrollArea-root" dir="ltr"><div style="overflow-x:hidden;overflow-y:hidden;overscroll-behavior-inline:none" class="m_c0783ff9 mantine-ScrollArea-viewport" data-scrollbars="xy"><div class="m_b1336c6 mantine-ScrollArea-content"><pre class="m_2c47c4fd mantine-CodeHighlight-pre" style="padding:0"><code class="m_5caae6d3 mantine-CodeHighlight-code">console.log("Hello, world!");</code></pre></div></div></div><button class="mantine-focus-auto m_c9378bc2 mantine-CodeHighlight-showCodeButton m_87cf2631 mantine-UnstyledButton-root" data-hidden="true" type="button">Expand code</button></div>
<p>Затем нажмите Enter. В консоли появится эта надпись.</p>
<p>А теперь попробуйте ввести текст: <code style="margin-bottom:var(--mantine-spacing-lg)" class="m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight m_e597c321 mantine-CodeHighlight-codeHighlight m_dfe9c588 mantine-InlineCodeHighlight-inlineCodeHighlight">alert("Hello, world!")</code>;. В браузере появится всплывающее окно. Мы часто можем взаимодействовать с ними, заходя на сайты. Например, они просят нас принять сбор сookies. Поздравляем — только что вы написали скрипт для такого окна.</p>
<h2 id="heading-2-24">Насколько сложно выучить JavaScript</h2>
<p>Синтаксис JavaScript считают одним из самых простых. Именно поэтому он завоевал такую популярность на рынке: его сравнительно легко выучить.</p>
<p>К сильным сторонам обучения JavaScript относят развитую экосистему: у него обширное комьюнити, всесторонняя поддержка, решение многих типовых задач можно найти в Google или получить быстрый ответ на форуме.</p>
<p>В качестве стартового языка JavaScript выбирают из-за простоты и хорошей документированности.</p>
<p>Сложность JavaScript в том, что для участия в коммерческой разработке знаний только самого языка программирования недостаточно. Потребуется выучить верстку, понимать принцип отправки и получения данных от сервера, а также выучить хотя бы пару популярных библиотек и фреймворков.</p>
<h2 id="heading-2-25">С чего начать изучать JavaScript</h2>
<p><img style="--image-object-fit:contain;width:auto" class="m_9e117634 mantine-Image-root" src="https://imgur.com/uJW3JBV.png" alt="" loading="lazy"/></p>
<p>«Современному джуну нужно освоить большой массив данных на JavaScript. Во-первых, это фундаментальные основы языка программирования: циклы, переменные, ветвления, константы, типы, классы конструктора и так далее. Во-вторых, нужно знать верстку, хотя бы в общих чертах, и уметь применять ее принципы на практике.</p>
<p>Еще пригодится понимание модели событий JavaScript, объекта и модели документа DOM. Также нужно научиться применять один из популярных фреймворков. Например, React или Vue.</p>
<p>И еще важно научиться делать запросы AJAX и HTTP-запросы из браузера. В этом можно разбираться бесконечно. Но джуну достаточно знать хотя бы то, как загрузить и отправить данные с API, использовать авторизацию и параметры запросов. С этой базой, если вы понимаете, что делаете, уже можно найти работу».</p>
<p>Также всем желающим изучить JavaScript мы рекомендуем прочитать эти книги:</p>
<ul>
<li>Дэвид Флэнаган «<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.livelib.ru/book/1000607178-javascript-podrobnoe-rukovodstvo-devid-flenagan" rel="noopener noreferrer" target="_blank">JavaScript. Подробное руководство</a>»</li>
<li>Дуглас Крокфорд «<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.livelib.ru/book/1003163932-kak-ustroen-javascript-duglas-krokford" rel="noopener noreferrer" target="_blank">Как устроен JavaScript</a>»</li>
<li>Алексей Васильев «<a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://www.litres.ru/book/aleksey-nikolaevich-vasilev/javascript-v-primerah-i-zadachah-26336630/" rel="noopener noreferrer" target="_blank">JavaScript в примерах и задачах</a>».</li>
</ul>
<p>Кроме книг для изучения JavaScript можно читать тематические статьи на <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://habr.com/ru/articles/" rel="noopener noreferrer" target="_blank">Хабре</a> и смотреть обучающие курсы на YouTube. Советуем также пройти <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://code-basics.com/ru/languages/javascript" rel="noopener noreferrer" target="_blank">бесплатный курс по основам JavaScript</a> на Code Basics. А для большего погружения — найдите свое <a style="text-decoration:underline" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="https://t.me/hexletcommunity" rel="noopener noreferrer" target="_blank">комьюнити</a> и обменивайтесь опытом с другими учащимися. И не забывайте как можно больше практиковаться и писать код.</p></div><div class=""><div style="--group-gap:var(--mantine-spacing-md);--group-align:center;--group-justify:space-between;--group-wrap:wrap;margin-bottom:var(--mantine-spacing-lg)" class="m_4081bf90 mantine-Group-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-user "><path d="M8 7a4 4 0 1 0 8 0a4 4 0 0 0 -8 0"></path><path d="M6 21v-2a4 4 0 0 1 4 -4h4a4 4 0 0 1 4 4v2"></path></svg></div><p style="margin-inline-end:var(--mantine-spacing-xl)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Анастасия Уминская</p><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">7 лет назад</p></div><div style="align-items:center" class="m_8bffd616 mantine-Flex-root __m__-_R_5dirddmiub_"><a style="display:inline-flex" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/stoit-li-uchit-javascript-perspektivy-situatsiya-na-rynke-truda-mneniya-ekspertov/votes"><div style="--ti-size:var(--ti-size-sm);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-inline-end:var(--mantine-spacing-xs);color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="sm"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-thumb-up "><path d="M7 11v8a1 1 0 0 1 -1 1h-2a1 1 0 0 1 -1 -1v-7a1 1 0 0 1 1 -1h3a4 4 0 0 0 4 -4v-1a2 2 0 0 1 4 0v5h3a2 2 0 0 1 2 2l-1 5a2 3 0 0 1 -2 2h-7a3 3 0 0 1 -3 -3"></path></svg></div></a><p class="mantine-focus-auto m_b6d8b162 mantine-Text-root">61</p></div></div></div><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;padding:var(--mantine-spacing-xl)" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><p style="margin-bottom:var(--mantine-spacing-sm);font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Читайте также:</p><ul style="margin-inline-start:var(--mantine-spacing-lg)" class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/zachem-izuchat-php-reyting-perspektivy-sfery-primeneniya">Язык программирования PHP: рейтинг, сферы применения, прогнозы экспертов</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/environment">Среды разработки: какие они бывают и чем отличаются друг от друга</a></span></div></li><li style="margin-bottom:var(--mantine-spacing-sm)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><a style="color:inherit" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/blog/posts/10-sovetov-o-tom-kak-bolee-effectivno-uchitsya-na-hexlet">10 советов, как более эффективно учиться в Хекслете</a></span></div></li></ul></div><div style="margin-block:var(--mantine-spacing-xl)" class="m_3eebeb36 mantine-Divider-root" data-orientation="horizontal" role="separator"></div></div><div></div></div><style data-mantine-styles="inline">.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:100%;--col-max-width:100%;}@media(min-width: 48em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:16.666666666666668%;--col-max-width:16.666666666666668%;}}@media(min-width: 62em){.__m__-_R_lmiub_{--col-flex-grow:auto;--col-flex-basis:33.333333333333336%;--col-max-width:33.333333333333336%;}}</style><div class="m_96bdd299 mantine-Grid-col __m__-_R_lmiub_ mantine-visible-from-md"><div style="background-color:var(--mantine-color-indigo-light);border:calc(0.0625rem * var(--mantine-scale)) solid transparent;margin-bottom:var(--mantine-spacing-xl);padding:var(--mantine-spacing-xl);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div style="margin-bottom:var(--mantine-spacing-md)" class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Категории</p></div><ul class="m_abbac491 mantine-List-root"><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Мотивация">Мотивация</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Истории успеха">Истории успеха</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Дневник студента">Дневник студента</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Код">Код</button></span></div></li><li style="margin-bottom:var(--mantine-spacing-xs)" class="m_abb6bec2 mantine-List-item" data-with-icon="true"><div class="m_75cd9f71 mantine-List-itemWrapper"><span class="m_60f83e5b mantine-List-itemIcon"><div class="m_4451eb3a mantine-Center-root"><div style="--ti-size:var(--ti-size-xs);--ti-bg:transparent;--ti-color:var(--mantine-color-indigo-light-color);--ti-bd:calc(0.0625rem * var(--mantine-scale)) solid transparent;color:inherit" class="m_7341320d mantine-ThemeIcon-root" data-variant="transparent" data-size="xs"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round" class="tabler-icon tabler-icon-chevron-compact-right "><path d="M11 4l3 8l-3 8"></path></svg></div></div></span><span class="mantine-List-itemLabel"><button style="color:inherit;text-decoration:underline" class="mantine-focus-auto m_87cf2631 mantine-UnstyledButton-root" type="button" aria-label="Карьера">Карьера</button></span></div></li></ul></div><div style="justify-content:end;margin-top:0rem;position:sticky;top:calc(5rem * var(--mantine-scale))" class="m_8bffd616 mantine-Flex-root __m__-_R_5dlmiub_"><div tabindex="0" style="cursor:pointer"><a style="text-decoration:none" class="mantine-focus-auto m_849cf0da m_b6d8b162 mantine-Text-root mantine-Anchor-root" data-underline="hover" href="/courses_web_development?promo_name=program_category&promo_position=blog_post&promo_creative=card&promo_type=card"><div style="background-color:var(--mantine-color-default);border:calc(0.0625rem * var(--mantine-scale)) solid var(--mantine-color-default-border);padding-inline:var(--mantine-spacing-xl);padding-top:var(--mantine-spacing-xl);padding-bottom:var(--mantine-spacing-xs);width:100%" class="m_e615b15f mantine-Card-root m_1b7284a3 mantine-Paper-root"><div class="m_4451eb3a mantine-Center-root" data-inline="true"><p style="font-size:var(--mantine-font-size-h4)" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Курсы по веб-разработке</p></div><img class="m_9e117634 mantine-Image-root" src="/vite/assets/development-BVihs_d5.png"/><p style="margin-bottom:var(--mantine-spacing-xs);text-align:right" class="mantine-focus-auto m_b6d8b162 mantine-Text-root">Посмотреть →</p></div></a></div></div></div></div></div></div></div>
</main>
<footer class="bg-dark fw-light text-light px-3 py-5">
<div class="row small">
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 mb-3">Хекслет</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/about">О нас</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/testimonials">Отзывы</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://b2b.hexlet.io" role="button">Корпоративное обучение</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/blog">Блог</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/qna">Вопросы и ответы</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/glossary">Глоссарий</a>
</li>
<li>
<span class="nav-link link-light py-1 ps-0 external-link" data-href="https://help.hexlet.io" data-target="_blank" role="button">Справка</span>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" target="_blank" rel="noopener noreferrer" href="/map">Карта сайта</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5 fw-normal mb-3">Направления</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_devops">DevOps
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_data_analytics">Аналитика
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_backend_development">Бэкенд
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_programming">Программирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_testing">Тестирование
</a></li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/courses_front_end_dev">Фронтенд
</a></li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Профессии</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/devops-engineer-from-scratch">DevOps-инженер с нуля</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/go">Go-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/java">Java-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python">Python-разработчик </a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/data-analytics">Аналитик данных</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/qa-engineer">Инженер по ручному тестированию</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php">РНР-разработчик</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/frontend">Фронтенд-разработчик</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-6 col-md-3">
<div class="h5">Навыки</div>
<ul class="list-unstyled">
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/python-django-developer">Django</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/docker">Docker</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/php-laravel-developer">Laravel</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/postman">Postman</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-react-developer">React</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/js-rest-api">REST API в Node.js</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/spring-boot">Spring Boot</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/programs/typescript">Typescript</a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-12 col-sm-4 col-md-2">
<div class="fs-4">
<ul class="list-unstyled d-flex">
<li class="me-3">
<a aria-label="Telegram" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://t.me/hexlet_ru"><span class="bi bi-telegram"></span>
</a></li>
<li>
<a aria-label="Youtube" target="_blank" class="link-light" rel="noopener noreferrer nofollow" href="https://www.youtube.com/user/HexletUniversity"><span class="bi bi-youtube"></span>
</a></li>
</ul>
</div>
<div class="mb-2 d-flex flex-column">
<a class="link-light text-decoration-none" rel="nofollow" href="mailto:support@hexlet.io">support@hexlet.io</a>
<a class="link-light text-decoration-none py-2" target="_blank" href="https://t.me/hexlet_help_bot">t.me/hexlet_help_bot</a>
</div>
<ul class="list-unstyled d-flex">
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://hexlet.io/locale/switch?new_locale=en" data-target="_self" role="button"><span class="my-auto">EN</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 opacity-100 external-link" rel="nofollow" data-href="https://ru.hexlet.io/locale/switch?new_locale=ru" data-target="_self" role="button"><span class="my-auto">RU</span>
</span></li>
<li class="me-3">
<span class="link-light text-decoration-none opacity-50 x-font-size-18 external-link" rel="nofollow" data-href="https://kz.hexlet.io/locale/switch?new_locale=kz" data-target="_self" role="button"><span class="my-auto">KZ</span>
</span></li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<ul class="list-unstyled fs-4">
<li class="mb-3">
<a class="link-light text-decoration-none" href="tel:8%20800%20100%2022%2047">8 800 100 22 47</a>
<span class="d-block opacity-50 small">бесплатно по РФ</span>
</li>
<li>
<a class="link-light text-decoration-none" href="tel:%2B7%20495%20085%2021%2062">+7 495 085 21 62</a>
<span class="d-block opacity-50 small">бесплатно по Москве</span>
</li>
</ul>
</div>
<div class="col-12 col-sm-4 col-md-3">
<div class="small mb-3">Образовательные услуги оказываются на основании Л035-01298-77/01989008 от 14.03.2025</div>
<ul class="list-unstyled small">
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/legal">Правовая информация</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/offer">Оферта</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/license">Лицензия</a>
</li>
<li>
<a class="nav-link link-light py-1 ps-0" href="/pages/contacts">Контакты</a>
</li>
</ul>
</div>
<div class="col-12 col-sm-12 col-md-4 small">
<div class="mb-2">
<div>ООО «<a href="/" class="text-decoration-none link-light">Хекслет Рус</a>»</div>
<div>108813 г. Москва, вн.тер.г. поселение Московский,</div>
<div>г. Московский, ул. Солнечная, д. 3А, стр. 1, помещ. 20Б/3</div>
<div>ОГРН 1217300010476</div>
<div>ИНН 7325174845</div>
</div>
<hr>
<div>АНО ДПО «<a href="/" class="text-decoration-none link-light">Учебный центр «Хекслет</a>»</div>
<div>119331 г. Москва, вн. тер. г. муниципальный округ</div>
<div>Ломоносовский, пр-кт Вернадского, д. 29</div>
<div>ОГРН 1247700712390</div>
<div>ИНН 7736364948</div>
</div>
</div>
</footer>
<div id="root-assistant-offcanvas"></div>
<script src="/vite/assets/assistant-Bukl1lYy.js" crossorigin="anonymous" type="module"></script><link rel="modulepreload" href="/vite/assets/chunk-DsPFFUou.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/init-BrRXra1y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/ErrorFallbackBlock-naDSYSy9.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/MarkdownBlock-DbyKWoR_.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/gon-D3e4yh1x.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/mantine-CGMYrt2Y.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/shiki-V011pkdv.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/utils-DRqSHbQE.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/routes-CCH8ilKF.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-XR8Qr8kR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dist-GCHh59xr.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/Box-B5-OOzBf.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/notifications.store-C-3AFSMn.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useIsomorphicEffect-HJ6VK0D3.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/lib-KSp6QbZ0.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/axios-BEvgo0ym.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/classnames-l6ipYlLR.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/dayjs.min-BkKovM-s.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/debounce-jMQ_Cf4f.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/i18next-BlSq9s7B.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/client-U9M77rxp.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-dom-DaLxUz_h.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/useTranslation-Bx1Cdrkz.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/compiler-runtime-6XxiPFnt.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/jsx-runtime-CwjcCKJi.js" as="script" crossorigin="anonymous">
<link rel="modulepreload" href="/vite/assets/react-CkL4ZRHB.js" as="script" crossorigin="anonymous">
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/v67327c56f0bb4ef8b305cae61679db8f1769101564043" integrity="sha512-rdcWY47ByXd76cbCFzznIcEaCN71jqkWBBqlwhF1SY7KubdLKZiEGeP7AyieKZlGP9hbY/MhGrwXzJC/HulNyg==" data-cf-beacon='{"version":"2024.11.0","token":"d11015b65d11429ea6b4a2ef37dd7e0b","server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>