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 > y) console.log('Привет'); // JavaScript выдаст "Привет", очевидно, сделав выбор в пользу банана.<p>Java на такие фокусы начнёт ругаться:</p>
36
var x = 'banana'; var y = '150'; if (x > 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>