HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>30 май 2022</li>
2 <ul><li>30 май 2022</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Знакомимся с главным языком фронтенд-разработки, сравниваем его с Java и запускаем первую программу.</p>
4 </ul><p>Знакомимся с главным языком фронтенд-разработки, сравниваем его с Java и запускаем первую программу.</p>
5 <p>Иллюстрация: Merry Mary для Skillbox Media</p>
5 <p>Иллюстрация: Merry Mary для Skillbox Media</p>
6 <p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
6 <p>Шеф-редактор Skillbox Media "Код". Пишет о разработке, софт-скиллах и культовых личностях в IT. Обожает Swift, продукты Apple и мемы про код.</p>
7 <p>На JavaScript написан практически весь фронтенд - всё, что мы можем увидеть в интернете. А относительно недавно он обосновался в бэкенде, на смартфонах и даже в прошивках умных чайников. Язык востребован и регулярно занимает первое место в рейтинге<a>Stack Overflow</a>.</p>
7 <p>На JavaScript написан практически весь фронтенд - всё, что мы можем увидеть в интернете. А относительно недавно он обосновался в бэкенде, на смартфонах и даже в прошивках умных чайников. Язык востребован и регулярно занимает первое место в рейтинге<a>Stack Overflow</a>.</p>
8 <p>Разбираемся, чем хорош JavaScript, где применяется и подходит ли он новичкам.</p>
8 <p>Разбираемся, чем хорош JavaScript, где применяется и подходит ли он новичкам.</p>
9 <p>JavaScript - это язык управления элементами на сайте. Он умеет красить кнопки, запускать анимации, загружать эффекты, и всё это - без перезагрузки страницы. Например, вы нажали кнопку "Нравится" - вспыхнуло красное сердечко. Или навели курсор на три точки, и выпало меню. В обоих случаях на странице сработал скрипт. А JavaScript как раз главный по ним в интернете - отсюда и его название.</p>
9 <p>JavaScript - это язык управления элементами на сайте. Он умеет красить кнопки, запускать анимации, загружать эффекты, и всё это - без перезагрузки страницы. Например, вы нажали кнопку "Нравится" - вспыхнуло красное сердечко. Или навели курсор на три точки, и выпало меню. В обоих случаях на странице сработал скрипт. А JavaScript как раз главный по ним в интернете - отсюда и его название.</p>
10 <p>JavaScript появился в далёкие девяностые, когда интернет был совсем юным и состоял в основном из текста и гиперссылок. Тогда компания Netscape захотела себе новый язык для веба в дополнение к HTML и CSS.</p>
10 <p>JavaScript появился в далёкие девяностые, когда интернет был совсем юным и состоял в основном из текста и гиперссылок. Тогда компания Netscape захотела себе новый язык для веба в дополнение к HTML и CSS.</p>
11 <p>На то было две причины:</p>
11 <p>На то было две причины:</p>
12 <ul><li>Благородная - чтобы люди в браузере могли не только читать текст, но и запускать разные меню, окошки, мигающие кнопки и так далее.</li>
12 <ul><li>Благородная - чтобы люди в браузере могли не только читать текст, но и запускать разные меню, окошки, мигающие кнопки и так далее.</li>
13 <li>Коммерческая - чтобы утереть нос Microsoft. В то время между Netscape Navigator и Internet Explorer шла "браузерная война", и Netscape решила привлечь разработчиков к работе в своём браузере с помощью нового языка.</li>
13 <li>Коммерческая - чтобы утереть нос Microsoft. В то время между Netscape Navigator и Internet Explorer шла "браузерная война", и Netscape решила привлечь разработчиков к работе в своём браузере с помощью нового языка.</li>
14 </ul><p>После этого сайты стали выглядеть примерно так:</p>
14 </ul><p>После этого сайты стали выглядеть примерно так:</p>
15 На GIF - сайт-мем<a>lingscars.com</a>, мы писали о нём<a>в этой статье</a><em>Источник:</em><em>сайт</em><a><em>LINGsCARS</em></a><p>А ещё Netscape договорилась с Sun Microsystems, чтобы язык считался "младшим братом" Java для браузеров. Так появилось название JavaScript - не потому, что языки сильно похожи, а потому, что Java тогда был на хайпе. В общем, во всём вините маркетологов :)</p>
15 На GIF - сайт-мем<a>lingscars.com</a>, мы писали о нём<a>в этой статье</a><em>Источник:</em><em>сайт</em><a><em>LINGsCARS</em></a><p>А ещё Netscape договорилась с Sun Microsystems, чтобы язык считался "младшим братом" Java для браузеров. Так появилось название JavaScript - не потому, что языки сильно похожи, а потому, что Java тогда был на хайпе. В общем, во всём вините маркетологов :)</p>
16 <p>Для начала небольшой ликбез. Все языки программирования делятся на <strong>компилируемые</strong>и <strong>интерпретируемые</strong>. Чтобы запустить программу, написанную на компилируемом языке, код предварительно прогоняют через компилятор. А вот код на интерпретируемом языке прогонять не надо - передал интерпретатору, и тот его сразу же исполняет.</p>
16 <p>Для начала небольшой ликбез. Все языки программирования делятся на <strong>компилируемые</strong>и <strong>интерпретируемые</strong>. Чтобы запустить программу, написанную на компилируемом языке, код предварительно прогоняют через компилятор. А вот код на интерпретируемом языке прогонять не надо - передал интерпретатору, и тот его сразу же исполняет.</p>
17 <p>JavaScript относится ко второму типу языков. С одной стороны, это удобно - меньше мороки и рутины, больше творчества. С другой - без интерпретатора он просто не запустится. К счастью, все современные веб-браузеры дружат c JavaScript.</p>
17 <p>JavaScript относится ко второму типу языков. С одной стороны, это удобно - меньше мороки и рутины, больше творчества. С другой - без интерпретатора он просто не запустится. К счастью, все современные веб-браузеры дружат c JavaScript.</p>
18 <p>Вот как запустить скрипт в браузере:</p>
18 <p>Вот как запустить скрипт в браузере:</p>
19 <ul><li>Берём код.</li>
19 <ul><li>Берём код.</li>
20 <li>Вставляем в браузер.</li>
20 <li>Вставляем в браузер.</li>
21 <li>Запускаем.</li>
21 <li>Запускаем.</li>
22 </ul><p>Кажется, звучит несложно. Давайте что-нибудь напишем. Откроем консоль браузера (Ctrl + Shift + J или Cmd + Opt + J) и вставим туда вот этот код:</p>
22 </ul><p>Кажется, звучит несложно. Давайте что-нибудь напишем. Откроем консоль браузера (Ctrl + Shift + J или Cmd + Opt + J) и вставим туда вот этот код:</p>
23 var userName=prompt("Как вас зовут?", "Введите имя"); confirm("Привет, " + userName + "!");<p>Введите своё имя и нажмите OK. Теперь сайт умеет с нами здороваться!</p>
23 var userName=prompt("Как вас зовут?", "Введите имя"); confirm("Привет, " + userName + "!");<p>Введите своё имя и нажмите OK. Теперь сайт умеет с нами здороваться!</p>
24 <em>Скриншот: Skillbox Media</em><p>Возьмём задачу посложнее. Допустим, у вашего учителя музыки юбилей, и вы готовите ему в подарок небольшой сайт-открытку. Добавили туда красивую надпись, фотографии, стихи. Вроде всё есть, но чего-то не хватает - ну, точно, воздушных шариков! Непорядок. Берём этот код и вставляем в консоль:</p>
24 <em>Скриншот: Skillbox Media</em><p>Возьмём задачу посложнее. Допустим, у вашего учителя музыки юбилей, и вы готовите ему в подарок небольшой сайт-открытку. Добавили туда красивую надпись, фотографии, стихи. Вроде всё есть, но чего-то не хватает - ну, точно, воздушных шариков! Непорядок. Берём этот код и вставляем в консоль:</p>
25 var js = document.createElement('script'); js.src = "https://safronovmax.github.io/LoveCursor/birthday.js"; document.body.appendChild(js);<p>Вжух - и вы гроза интернета, шальной веб-император нулевых. А шарики исчезнут сами, через десять секунд - можно продолжать читать статьи.</p>
25 var js = document.createElement('script'); js.src = "https://safronovmax.github.io/LoveCursor/birthday.js"; document.body.appendChild(js);<p>Вжух - и вы гроза интернета, шальной веб-император нулевых. А шарики исчезнут сами, через десять секунд - можно продолжать читать статьи.</p>
26 <em>Скриншот: Skillbox Media</em><p>Веселье весельем, но JavaScript - это серьёзный и мощный язык, на котором можно не только красивые анимации рисовать, но и писать сложные программы для бизнеса.</p>
26 <em>Скриншот: Skillbox Media</em><p>Веселье весельем, но JavaScript - это серьёзный и мощный язык, на котором можно не только красивые анимации рисовать, но и писать сложные программы для бизнеса.</p>
27 <p>Возьмём, к примеру, "Google Документы". Вспомните, как много там функций: можно менять шрифт, выравнивать абзацы, вставлять картинки. Без JavaScript нам бы пришлось перезагружать страницу после каждого действия - проще плюнуть и уйти в Word. А так у нас есть удобная облачная альтернатива.</p>
27 <p>Возьмём, к примеру, "Google Документы". Вспомните, как много там функций: можно менять шрифт, выравнивать абзацы, вставлять картинки. Без JavaScript нам бы пришлось перезагружать страницу после каждого действия - проще плюнуть и уйти в Word. А так у нас есть удобная облачная альтернатива.</p>
28 <p>JavaScript умеет запускаться на сервере и может быть полноценным бэкенд-языком - как Python, С# и Java. Подключаем к нему специальный движок<a>Node.js</a>, и можно писать вообще что угодно: чаты, соцсети, компьютерные программы и так далее. В Netflix, например, пишут на нём и серверную логику, и интерфейс.</p>
28 <p>JavaScript умеет запускаться на сервере и может быть полноценным бэкенд-языком - как Python, С# и Java. Подключаем к нему специальный движок<a>Node.js</a>, и можно писать вообще что угодно: чаты, соцсети, компьютерные программы и так далее. В Netflix, например, пишут на нём и серверную логику, и интерфейс.</p>
29 <p>Расширения - это простые скрипты, которые добавляют в браузер новые функции. Они умеют блокировать рекламу, делать скриншоты, обходить блокировки сайтов (мы этого не говорили). Все расширения пишут на JavaScript - достаточно выучить его, и расширяйте сколько вздумается.</p>
29 <p>Расширения - это простые скрипты, которые добавляют в браузер новые функции. Они умеют блокировать рекламу, делать скриншоты, обходить блокировки сайтов (мы этого не говорили). Все расширения пишут на JavaScript - достаточно выучить его, и расширяйте сколько вздумается.</p>
30 <p>Допустим, вы работаете тимлидом в небольшой IT-компании, создаёте облачное хранилище. Однажды к вам приходит продакт-менеджер и требует приложение для Android - чтобы клиенты могли заходить в хранилище с телефона. А у вас вообще-то стартап, и денег на Android-разработчика нет.</p>
30 <p>Допустим, вы работаете тимлидом в небольшой IT-компании, создаёте облачное хранилище. Однажды к вам приходит продакт-менеджер и требует приложение для Android - чтобы клиенты могли заходить в хранилище с телефона. А у вас вообще-то стартап, и денег на Android-разработчика нет.</p>
31 <p>Можно пойти сложным путём и обучить команду программировать на Kotlin. А можно схитрить и попросить фронтендера написать программу на JavaScript. Потом просто компилируете её под Android с помощью React Native и получаете нативное приложение.</p>
31 <p>Можно пойти сложным путём и обучить команду программировать на Kotlin. А можно схитрить и попросить фронтендера написать программу на JavaScript. Потом просто компилируете её под Android с помощью React Native и получаете нативное приложение.</p>
32 <p>Помните динозаврика из Google Chrome? Который прыгает через кактусы, если пропал интернет. Вы тоже можете написать такого на JavaScript, и ещё много других простых игрушек:<a>гонок</a>, бродилок, головоломок, стратегий и так далее.</p>
32 <p>Помните динозаврика из Google Chrome? Который прыгает через кактусы, если пропал интернет. Вы тоже можете написать такого на JavaScript, и ещё много других простых игрушек:<a>гонок</a>, бродилок, головоломок, стратегий и так далее.</p>
33 Ремейк Road Fighter на JavaScript<em>Источник: Skillbox Media</em><p>Многие начинающие разработчики думают, что Java и JavaScript - родственники. Мол, сначала нужно выучить Джаву, а придачу к ней ещё Скрипт, и дело в шляпе :) На самом деле это совсем разные языки - они по-разному устроены и используются для разных задач.</p>
33 Ремейк Road Fighter на JavaScript<em>Источник: Skillbox Media</em><p>Многие начинающие разработчики думают, что Java и JavaScript - родственники. Мол, сначала нужно выучить Джаву, а придачу к ней ещё Скрипт, и дело в шляпе :) На самом деле это совсем разные языки - они по-разному устроены и используются для разных задач.</p>
34 <p>В любом компьютерном языке есть типы данных: строки, числа, символы и так далее. Но каждый язык по-разному себя с ними ведёт - это называется<strong>типизацией</strong>. В языках вроде Java она<strong>статическая</strong>- если мы вводим числовую переменную, нужно сначала задать её тип. Компьютер смотрит на тип и понимает: сейчас будет математика.</p>
34 <p>В любом компьютерном языке есть типы данных: строки, числа, символы и так далее. Но каждый язык по-разному себя с ними ведёт - это называется<strong>типизацией</strong>. В языках вроде Java она<strong>статическая</strong>- если мы вводим числовую переменную, нужно сначала задать её тип. Компьютер смотрит на тип и понимает: сейчас будет математика.</p>
35 <p>А в JavaScript типизация<strong>динамическая</strong>, поэтому типы задавать не нужно. С одной стороны, свобода и рок-н-ролл, а с другой - возможны разные аномалии. Например, у JavaScript можно спросить, что больше - банан или 150, и получить ответ:</p>
35 <p>А в JavaScript типизация<strong>динамическая</strong>, поэтому типы задавать не нужно. С одной стороны, свобода и рок-н-ролл, а с другой - возможны разные аномалии. Например, у JavaScript можно спросить, что больше - банан или 150, и получить ответ:</p>
36 var x = 'banana'; var y = '150'; if (x &gt; y) console.log('Привет'); // JavaScript выдаст "Привет", очевидно, сделав выбор в пользу банана.<p>Java на такие фокусы начнёт ругаться:</p>
36 var x = 'banana'; var y = '150'; if (x &gt; y) console.log('Привет'); // JavaScript выдаст "Привет", очевидно, сделав выбор в пользу банана.<p>Java на такие фокусы начнёт ругаться:</p>
37 <em>Скриншот: Skillbox Media</em><p>Зато так безопаснее - язык защищает программиста от его собственных ошибок. Не сравнивайте бананы с числами!</p>
37 <em>Скриншот: Skillbox Media</em><p>Зато так безопаснее - язык защищает программиста от его собственных ошибок. Не сравнивайте бананы с числами!</p>
38 <p>В отличие от JavaScript, Java - это компилируемый язык. Перед тем как запустить Java-код, его нужно скомпилировать - то есть перевести на машинный язык. Зато потом, когда мы кликнем на иконку программы, код сразу начнёт выполняться. При повторном запуске ничего компилировать не нужно.</p>
38 <p>В отличие от JavaScript, Java - это компилируемый язык. Перед тем как запустить Java-код, его нужно скомпилировать - то есть перевести на машинный язык. Зато потом, когда мы кликнем на иконку программы, код сразу начнёт выполняться. При повторном запуске ничего компилировать не нужно.</p>
39 <p>Скрипты же сначала перехватывает интерпретатор, который делает примерно то же самое, но в режиме реального времени. То есть при каждом запуске скрипта код JavaScript переводится в машинный.</p>
39 <p>Скрипты же сначала перехватывает интерпретатор, который делает примерно то же самое, но в режиме реального времени. То есть при каждом запуске скрипта код JavaScript переводится в машинный.</p>
40 <p>Магия языка Java - в его<a>виртуальной машине</a>(JVM). Виртуальная машина позволяет запускать код на любом устройстве, где она установлена. Удалось запустить машину - запустится и программа. Поэтому на Java удобно писать софт для самых разных устройств: серверов, компьютеров, смартфонов, банкоматов и даже роботов.</p>
40 <p>Магия языка Java - в его<a>виртуальной машине</a>(JVM). Виртуальная машина позволяет запускать код на любом устройстве, где она установлена. Удалось запустить машину - запустится и программа. Поэтому на Java удобно писать софт для самых разных устройств: серверов, компьютеров, смартфонов, банкоматов и даже роботов.</p>
41 <p>У JavaScript совсем другая задача - управлять элементами страницы. Можно написать полезный скрипт и добавить функций на сайт. А если ещё<a>освоить Node.js</a>, то вообще никакой другой язык не нужен - можно хоть розетку запрограммировать.</p>
41 <p>У JavaScript совсем другая задача - управлять элементами страницы. Можно написать полезный скрипт и добавить функций на сайт. А если ещё<a>освоить Node.js</a>, то вообще никакой другой язык не нужен - можно хоть розетку запрограммировать.</p>
42 <p>Короткий ответ - JavaScript. Чтобы написать первый скрипт, не нужно тратить время на установку виртуальной машины и разбираться в типах данных. А из инструментов понадобятся лишь блокнот и браузер. Выбирайте его, если вы совсем новичок и хотите быстро вкатиться в разработку.</p>
42 <p>Короткий ответ - JavaScript. Чтобы написать первый скрипт, не нужно тратить время на установку виртуальной машины и разбираться в типах данных. А из инструментов понадобятся лишь блокнот и браузер. Выбирайте его, если вы совсем новичок и хотите быстро вкатиться в разработку.</p>
43 <p>С Java на первых порах придётся попотеть, зато потом вы сможете запускать сложные системы. А ещё с Java легко перейти на другие языки - Kotlin или C#.</p>
43 <p>С Java на первых порах придётся попотеть, зато потом вы сможете запускать сложные системы. А ещё с Java легко перейти на другие языки - Kotlin или C#.</p>
44 <p>Программисты на JavaScript всегда востребованны - они нужны банкам, IT-компаниям, рекламным агентствам и всем, кто ведёт бизнес в интернете. Да и платить им готовы неплохо - в среднем 156 000 рублей в месяц (по <a>данным "Хабр Карьеры"</a>). А джун без опыта может получать около 60 000 рублей.</p>
44 <p>Программисты на JavaScript всегда востребованны - они нужны банкам, IT-компаниям, рекламным агентствам и всем, кто ведёт бизнес в интернете. Да и платить им готовы неплохо - в среднем 156 000 рублей в месяц (по <a>данным "Хабр Карьеры"</a>). А джун без опыта может получать около 60 000 рублей.</p>
45 <em>Скриншот: Skillbox Media</em><p>Если сравнивать разные грейды, то зарплаты JavaScript-разработчиков выглядят так:</p>
45 <em>Скриншот: Skillbox Media</em><p>Если сравнивать разные грейды, то зарплаты JavaScript-разработчиков выглядят так:</p>
46 <ul><li>от 40 до 100 тысяч - джуны;</li>
46 <ul><li>от 40 до 100 тысяч - джуны;</li>
47 <li>от 80 до 225 тысяч - мидлы;</li>
47 <li>от 80 до 225 тысяч - мидлы;</li>
48 <li>от 200 до 450 тысяч - сеньоры.</li>
48 <li>от 200 до 450 тысяч - сеньоры.</li>
49 </ul><p>Работы у "джаваскриптеров" хоть отбавляй. Согласно hh.ru, в Петербурге и Москве для них открыто 5000 вакансий - это больше, чем для программистов на Java, PHP или C#.</p>
49 </ul><p>Работы у "джаваскриптеров" хоть отбавляй. Согласно hh.ru, в Петербурге и Москве для них открыто 5000 вакансий - это больше, чем для программистов на Java, PHP или C#.</p>
50 <em>Скриншот: Skillbox Media</em><p>Почитайте книгу "Выразительный JavaScript" Марейна Хавербеке - это отличное пособие по языку с примерами, заданиями и без воды. Хороший<a>онлайн-учебник</a>у программиста Ильи Кантора - по нему можно дойти от азов до продвинутых концепций вроде ООП и прототипов.</p>
50 <em>Скриншот: Skillbox Media</em><p>Почитайте книгу "Выразительный JavaScript" Марейна Хавербеке - это отличное пособие по языку с примерами, заданиями и без воды. Хороший<a>онлайн-учебник</a>у программиста Ильи Кантора - по нему можно дойти от азов до продвинутых концепций вроде ООП и прототипов.</p>
51 <p>Дальнейший путь зависит от вашего стека. <strong>Если метите во фронтенд</strong>, начните с HTML и CSS. На сайте<a>Code Basics</a>есть бесплатные курсы по ним - с понятной теорией и тренажёрами. Потом разберитесь в работе браузера, сетевой безопасности и определитесь с фреймворком:<a>React.js</a>,<a>Vue.js</a>или<a>Angular.JS</a>.</p>
51 <p>Дальнейший путь зависит от вашего стека. <strong>Если метите во фронтенд</strong>, начните с HTML и CSS. На сайте<a>Code Basics</a>есть бесплатные курсы по ним - с понятной теорией и тренажёрами. Потом разберитесь в работе браузера, сетевой безопасности и определитесь с фреймворком:<a>React.js</a>,<a>Vue.js</a>или<a>Angular.JS</a>.</p>
52 <p><strong>Если больше нравится бэкенд,</strong>в первую очередь изучите Node.js - он позволяет разворачивать JavaScript на сервере. Во-вторых, освойте SQL-запросы, базы данных и сетевые протоколы. По последней теме посоветуем бессмертную классику Эндрю Таненбаума "Компьютерные сети", которая обновляется каждые 3-5 лет.</p>
52 <p><strong>Если больше нравится бэкенд,</strong>в первую очередь изучите Node.js - он позволяет разворачивать JavaScript на сервере. Во-вторых, освойте SQL-запросы, базы данных и сетевые протоколы. По последней теме посоветуем бессмертную классику Эндрю Таненбаума "Компьютерные сети", которая обновляется каждые 3-5 лет.</p>
53 <p>JavaScript отлично подходит для "вкатывания" в IT. На первых порах с ним не нужно погружаться в технические детали и сложные концепции, а писать код можно в блокноте или простом редакторе. На JavaScript написан фронтенд большинства сайтов, а у некоторых - даже серверная часть. Поэтому программисты, которые освоили этот язык, будут востребованны, пока жив интернет :)</p>
53 <p>JavaScript отлично подходит для "вкатывания" в IT. На первых порах с ним не нужно погружаться в технические детали и сложные концепции, а писать код можно в блокноте или простом редакторе. На JavaScript написан фронтенд большинства сайтов, а у некоторых - даже серверная часть. Поэтому программисты, которые освоили этот язык, будут востребованны, пока жив интернет :)</p>
54 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
54 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>