Основы JavaScript для начинающих программистов - твой первый код за 15 минут



Книга Основы JavaScript для начинающих программистов - твой первый код за 15 минут
Приветствую тебя, увлеченный сторонник передовых технологий! Настало время покорить цифрового дракона - освоить основы программирования на языке JavaScript. Рад сообщить, что этот язык довольно прост в изучении, и за несколько недель ты сможешь писать работающие программы. В то же время он очень гибок и востребован, что позволяет создавать на нем серьезные коммерческие проекты.

JavaScript - это язык программирования, который был разработан специально для веб-разработки. Он был создан в 1995 году вместе с одним из первых веб-браузеров в мире. С каждым годом популярность JavaScript только увеличивается, и его возможности становятся все более разнообразными.

Если вы долго сомневались, на каком языке программирования начать изучение прикладного программирования, то я рекомендую вам попробовать начать с JS! Я уверен, что вы будете приятно удивлены его простотой, удобством и терпимостью к ошибкам начинающих разработчиков.

На мой взгляд, нельзя недооценить важность JavaScript в современном мире. Этот язык играет ключевую роль в создании интерактивности на веб-сайтах. Разнообразные функции, такие как всплывающие окна, редакторы текста, видеоплееры, социальные сети с их динамическими лентами, почтовые приложения и многое другое, основаны на JavaScript. Популярные сервисы, такие как Google Maps, Яндекс.Карты, VK, Дзен и многие другие, также используют JavaScript. Этот язык уникален и пользуется огромным спросом из-за отсутствия достойных альтернатив. Несмотря на свои особенности и некоторую непредсказуемость, JavaScript остается неповторимым и незаменимым инструментом в веб-разработке.

Один из самых важных вопросов, который может возникнуть у начинающего программиста - "сколько времени нужно уделить изучению?". И здесь есть хорошие новости - для освоения основ языка потребуется совсем немного времени. JavaScript настолько легок в изучении, что для написания первых приложений достаточно обычного текстового редактора. Да, это не шутка! В начале тебе даже не понадобится сложный специализированный редактор кода или какие-либо дополнительные программы. Более того, прямо сейчас, всего лишь нажав несколько кнопок, ты можешь писать работающий код JavaScript прямо в своем браузере.

Если тебе интересно, я могу поделиться деталями о том, как начать изучение JavaScript. Просто приготовь себе чашку чая или кофе, уделите 15 минут на прочтение этой статьи - и в итоге ты получишь ценный опыт реального, практического программирования.

Где обитает JavaScript? 🐲

Для того чтобы понять суть JavaScript, необходимо начать с того, где он "проживает" и как выполняется код, написанный на этом языке. Почти все программы обычно представляют собой исполняемые файлы - в традиционном понимании. При запуске такого файла (на компьютере) или при нажатии на иконку приложения (на смартфоне), программа запускается, и вы видите ее интерфейс. Затем вы взаимодействуете с интерфейсом программы - нажимаете кнопки, вводите текст и так далее. Это типичный пример программы, написанной на определенном языке и упакованной в исполняемый файл. Однако в случае с JavaScript все несколько иначе - здесь нет исполняемых файлов, по которым можно кликнуть. Так как же это все работает? Давайте разберемся!

JavaScript - это язык программирования, который встроен в веб-браузеры. Его среда выполнения непосредственно интегрирована в их программный код. Более конкретно, JavaScript выполняется на веб-страницах, которые уже загружены с сервера и отображены в браузере пользователя (например, в Google Chrome, Яндекс.Браузер, Mozilla, Edge, Opera и других). Существуют и другие среды выполнения JavaScript (например, на веб-сервере), но это уже совсем другая история.

В отличие от обычных приложений, скрипты на JavaScript не имеют красивых иконок, по которым можно было бы кликнуть. JavaScript программы встраиваются программистами в исходный код веб-страниц на этапе разработки сайтов. Эта технология настолько удобна и широко применяема, что практически все современные сайты содержат десятки, сотни или даже тысячи таких "встроенных" мини-программ на JavaScript, выполняющих различные функции.

JavaScript программы - это текстовые файлы с расширением .js, которые интегрируются в веб-страницы с помощью ссылок, используя специальные HTML-теги. В отличие от обычного "клика для запуска", скрипты JavaScript начинают выполняться автоматически при открытии определенной страницы на сайте. Ниже приведен пример HTML-кода для подключения файла со скриптом к веб-странице:

Зачем вообще нужно использовать такие файлы, почему нельзя было обойтись без них? Основная причина заключается в том, что в своем изначальном состоянии все веб-страницы являются статичными и неизменными. Они создаются с использованием языка разметки HTML и представляют собой набор блоков, расположенных относительно друг друга. Это означает, что они не способны двигаться, изменяться, мигать или отображать всплывающие окна, а также выполнять другие интерактивные действия. Более того, в их изначальном виде веб-страницы не могут отображать сложные динамические данные, такие как Google Maps или Яндекс.Карты. Именно для добавления интерактивности и динамичности веб-страницам используется язык JavaScript, который является неотъемлемой частью веб-разработки.

Кто и когда придумал JavaScript? 👨‍💻

Язык JavaScript был разработан программистом по имени Брендан Эйх в 1995 году. Он придумал его в процессе работы над одним из самых первых веб-браузеров - Netscape Navigator 2.0, и утверждал, что потратил на это примерно 10 дней. Брендан был частью команды программистов, занимавшейся созданием первых в мире браузеров для просмотра веб-сайтов.

Компания Netscape была в поиске простого и удобного встраиваемого языка для работы с "динамическими страницами" во время разработки своего браузера. Таким образом, была создана первая версия языка JavaScript. Интересно отметить, что браузер Netscape Navigator, который сегодня практически не используется, был лидером на рынке и оказал значительное влияние на развитие современных веб-браузеров.

"Netscape - это первый браузер, который позволял обычному пользователю с модемом на 14,4 кбит работать с Интернетом интерактивно. Этот браузер позиционировался как инструмент, внутри которого впервые появилась поддержка языка JavaScript. Ниже представлена картинка, показывающая его внешний вид. Этот инструмент предназначен для просмотра интернет-сайтов, такой же, как и браузер, через который вы читаете эту статью. Просто он немного более упрощенный и угловатый."

В то же время, всего через несколько дней после успешного выхода Netscape на IPO (первичное публичное размещение акций), Microsoft представила операционную систему Windows 95 с встроенным браузером Internet Explorer, что послужило началом запуска собственных веб-браузеров другими крупными компаниями в сфере интернета.

В общем, это уже совсем другая история - но суть ее в том, что JavaScript начал свое развитие в 1995 году, вместе с запуском первых веб-браузеров и появлением интернета в том виде, в котором мы знаем его сегодня. Важно отметить, что изначально JavaScript был разработан для использования внутри веб-браузера, чтобы придать веб-страницам больше интерактивности. Поэтому он остается привязанным к браузерам и не представляется как отдельная платформа разработки, а как инструмент для создания интерактивных элементов на веб-сайтах.

Возможно, ты уже слышал о NodeJS - инновационной технологии, позволяющей создавать запускаемые приложения на JavaScript. Однако не дай этому факту ввести тебя в заблуждение - NodeJS появилась значительно позже, чем JavaScript (в 2009 году). С точки зрения нашей редакции, ее применение для разработки традиционных приложений ограничено.

Что умеет, и чего не умеет JavaScript 🟠

JavaScript обладает широким спектром возможностей для работы с веб-страницами. Это неудивительно, учитывая его историю и первоначальное предназначение. В настоящее время с помощью этого языка программирования и различных библиотек, таких как jQuery или React, можно реализовать практически любые задачи на веб-страницах. Более того, JavaScript позволяет даже создавать веб-страницы с нуля за доли секунды после их первоначальной загрузки.

Важно понимать, что JavaScript программа способна взаимодействовать только с определенной веб-страницей, к которой она привязана. Это означает, что скрипт, запущенный на странице "мой кабинет" в Яндекс.Почте, не сможет внезапно перейти на ваш аккаунт на Госуслугах и изменить вашу фотографию. Его возможности ограничены только тем сайтом, на котором он работает - ни больше, ни меньше.

Также возможно создавать модули для веб-браузеров с использованием JavaScript. Например, если в вашем браузере установлены дополнительные плагины (например, VPN или блокировщик рекламы), то они также разработаны на языке JavaScript.

Совершенно иначе обстоит ситуация при взаимодействии языка JavaScript с файловой системой (и операционной системой) вашего компьютера. JavaScript ограничен веб-браузером и не имеет доступа к внешнему миру в целях безопасности. Это означает, что скрипт на JavaScript не способен просматривать содержимое рабочего стола, перезагружать компьютер, изменять время или совершать звонки - суть в том, что он не может вмешиваться в работу вашего устройства и операционной системы.

В последние годы в новых версиях языка появляются некоторые узкие технологии для доступа к файловой системе устройства из веб-браузера. Однако их возможности ограничены, а безопасность сильно ограничена, поэтому это не является радикальной сменой парадигмы. JavaScript был и остается языком, работающим внутри веб-браузера.

Почему JavaScript часто критикуют? 🤬

Как можно догадаться, язык, ядро которого было написано за 10 дней, вряд ли можно назвать очень продуманным. И в некотором смысле, это действительно так. JavaScript не отличается строгостью и позволяет начинающему программисту делать практически все, что угодно. Этот язык прощает многие ошибки - если не сказать больше - некоторые его особенности могут привести к возникновению таких ошибок при написании кода. Новички могут неосознанно писать на JavaScript такую диковинку, что просто ужас. Например, можно легко сбить браузер (переполнив память), заспамить бедного пользователя бесконечными модальными окнами и прочие радости жизни.

JavaScript не является компилируемым языком в обычном понимании. Это означает, что здесь отсутствует традиционный компилятор, который анализирует исходный код и преобразует его в исполняемый файл. Вместо этого все происходит "на лету" - и если где-то в программе есть логическая ошибка, то программист узнает об этом только в процессе выполнения.

Основная причина ошибок в JavaScript связана с его нестрогой типизацией и отношением к типам данных. В статье можно узнать подробнее о типизации. Например, сложение массивов может привести к получению строки, а сложение булевых значений - к числу. Также возможно сравнение числа 0 со строкой "0" и получение ответа "значения равны" при нестрогом сравнении. Все эти особенности могут запутать начинающего программиста и привести к написанию некачественного кода. Однако есть и плюсы: новичок быстро осваивает язык программирования и начинает верить в свои способности, так как JavaScript не навязывает строгие правила.

Не стоит расстраиваться из-за этого. JavaScript остается основным языком для создания интерактивности на веб-сайтах, несмотря на все его особенности. Этот язык не случайно просуществовал более 25 лет и вытеснил конкурентов - он прост, удобен и идеально подходит для решения поставленных задач.

Синтаксис (правила) языка JavaScript 🔢

Разговор о синтаксисе языка, безусловно, заслуживает отдельной обширной публикации. Не стоит забывать, что существуют специальные образовательные программы, которые подробно изучают все тонкости этой темы. Однако, учитывая, что наш материал предназначен для новичков в программировании, мы с удовольствием представим краткий обзор основ языка JavaScript - перечень некоторых операторов и ключевых слов.

Ключевым словом для создания функции является function. Функция представляет собой фрагмент программного кода, который может быть выполнен несколько раз. Например, можно создать файл с именем hello.js и определить в нем функцию.

function MyFunc() { alert("здравствуйте!"); }

После этого в коде можно вызвать данную функцию несколько раз:

Вызов функции MyFunc(); повторяется три раза.

При каждом обращении к функции вы увидите сообщение "Привет!" на вашем мониторе. Более подробную информацию о функциях можно найти на сайте MDN: ссылка.

Ключевые слова let, var, const используются в JavaScript для создания переменных. Рекомендуется использовать оператор let для объявления переменных, чтобы избежать проблем с перезаписью значений переменных с одинаковыми названиями. Это поможет избежать потенциальных ошибок в будущем. Пример использования оператора let:

пусть a = 10; пусть b = "asdasd"; пусть xxx = "ты самый лучший"; пусть bb = [1,2,3];

Больше информации о ключевом слове let можно найти на сайте MDN: перейти по ссылке.

[ ] - это синтаксис, который используется для создания нового массива. Массив представляет собой упорядоченный набор элементов, таких как числа, строки или другие объекты. Например, массив из нескольких чисел будет выглядеть следующим образом:

У меня есть массив чисел: [1,2,3,4,5];

Вот так выглядит массив, содержащий строки:

const strArray = ["abc","hdsahdsahads", "hello!"];

{ } - это специальный синтаксис, который используется для создания нового объекта. Объект представляет собой абстрактную сущность, которая можно представить как библиотеку, где каждый элемент имеет уникальный ключ и соответствующее значение. Более подробно о работе с объектами можно узнать здесь. Пример объекта "Пользователь" представлен ниже:

const userInfo = { "name": "Vitalii", "age": 35, "height": 188 }

Оператор if используется для установления условия. Если условие истинно, то выполняется определенный код внутри блока if. В противном случае код не будет выполнен. Например, можно проверить возраст пользователя и, если он старше 20 лет, вывести приветственное сообщение.

Установим возраст пользователя равным 35 годам.

Если возраст пользователя больше 20 лет, то появится сообщение: "Привет! Похоже, ты уже взрослый!".

Оператор for - это цикл, который позволяет выполнить определенное действие заданное количество раз (например, 10 или 20 раз и так далее). Например, следующий код будет выполнен внутри оператора for 15 раз:

Для (пусть i = 0; i < 15; i++) { /* ... некоторый код ... */ }

Оператор while также является циклическим оператором, который позволяет выполнить определенное действие определенное количество раз, пока выполняется определенное условие. Это похоже на оператор if, но с возможностью зацикливания. Например, следующий код будет выполняться до тех пор, пока не наступит 12 часов.

Пока (новая Дата().час !== 12) { /* ... некоторый код ... */ }

Точка - это особая структура, которая используется для обращения к свойствам объектов или массивов. Например, если у вас есть следующий объект:

Объект userData содержит информацию о пользователе: имя - Виталий, возраст - 35 лет, рост - 188 см.

Если нужно, можно обратиться к свойствам объекта, используя точечную нотацию. Например:

присвоить переменной userName значение userData.name;

Математические операторы +, -, =, >, < - это специальные символы, используемые для сравнения чисел, их сложения и вычитания. Например, 2 + 3 = 5, переменная q равна 10 + 25 и так далее.

Здесь заканчивается краткий обзор синтаксиса. Если у вас есть время и желание изучить все детали, рекомендуется обратиться к MDN, где подробно описаны все особенности синтаксиса этого языка. Вот ссылка на ресурс.

Доступ к JavaScript внутри браузера 🔌

Простейший способ испытать свои навыки в JavaScript - это открыть консоль разработчика в веб-браузере. В различных браузерах и на различных устройствах это можно сделать по-разному. Например, в Google Chrome (будь то Windows или Mac) это можно сделать, нажав клавишу F12. Вот как выглядит открытая консоль разработчика в Google Chrome:

При открытии окна инструментов разработчика следует перейти на вкладку "Console". Это интерактивная панель, которая предоставляет доступ к JavaScript-содержимому страницы и позволяет выполнять любой JavaScript код прямо на выбранной странице. Поскольку JavaScript не является компилируемым языком, любой написанный нами код можно немедленно выполнить, просто введя его в консоль и нажав Enter.

Инструмент для отладки программного кода - консоль разработчика Google Chrome, которая позволяет пользователям выполнять код непосредственно. Однако это не означает, что это единственная точка входа для написания и применения JavaScript-кода. Следует рассматривать ее скорее как средство для отладки. Обычно JavaScript-код хранится в файлах формата .js и подключается к веб-сайту с помощью специальных html-тегов (об этом упоминалось ранее в данной статье). При загрузке страницы подключенные скрипты автоматически выполняются и взаимодействуют с элементами на странице.

Для добавления JavaScript-файлов на страницу необходимо использовать тег

Простые примеры кода на JavaScript 🚀

Надеюсь, что ты успешно справился с задачей по открытию панели разработчика в браузере Google Chrome и нашел там консоль. Если что-то пошло не так, пожалуйста, перечитай предыдущий абзац или напиши об этом в комментариях. Но допустим, что у тебя все-таки получилось! Теперь давай попробуем создать простейшие скрипты на JavaScript и запустить их на примере главной страницы сайта vc.ru.

В принципе, JavaScript дает возможность вносить практически любые изменения на веб-странице. Можно добавлять новые элементы или изменять уже существующие. Все зависит от вашего воображения и конкретной задачи на данный момент. Код, который вы напишете в консоли и выполните, сразу же будет обработан и применен к открытой в вашем браузере странице.

Итак, давайте решим учебную задачу. Добавим на главной странице VC большой синий квадрат! Обратите внимание - страница открыта в вашем браузере и является локальной копией на вашем устройстве. Все действия, которые вы выполните здесь, будут видны только вам. Вы не сможете изменить сайт VC или показать этот квадрат другим пользователям. Это всего лишь тестовый пример того, как с помощью JavaScript можно взаимодействовать с определенной веб-страницей.

Итак, начнем с кода! Для его написания нам нужно использовать несколько простых команд. Открываем консоль и первым делом очищаем ее от лишнего кода - выполняем команду console.clear(); Эта команда обращается к объекту console, который отвечает за управление программным кодом, выполняемым через консоль.

Затем мы создадим обертку для нашего скрипта. Для этого мы воспользуемся так называемой "самовызывающейся функцией". Не будем углубляться в сложные термины - в общем, это функция, которая будет вызвана автоматически сразу после загрузки в консоль. Такие конструкции могут быть использованы не только в файлах, но и код, который они содержат, всегда будет выполняться автоматически при загрузке на веб-страницу. Вот как это выглядит:

(function () {
// код функции
}());

Допустим, вы можете запросить у JavaScript отобразить определенное сообщение на экране, обернув его в самовызывающуюся функцию. Попробуйте скопировать следующий код в консоль и выполнить его (скопируйте и нажмите Enter):

(function () {
alert('Привет Войтишник!');
}());

Давайте продолжим. Сейчас мы должны нарисовать наш волшебный голубой квадрат и отобразить его по центру экрана. Для того чтобы создать любые элементы на странице с помощью JavaScript, мы используем функцию document.createElement(); Внутри этой функции необходимо указать тип html-элемента, который мы хотим создать. Самым простым блочным элементом является div, поэтому давайте создадим именно его. Кстати, здесь есть отдельная статья о простейших HTML-тегах. Но давайте не будем отвлекаться от основной темы и создадим новый div:

let newDiv = document.createElement("div");

Давайте теперь определим размеры элемента, окрасим его в голубой цвет и установим позиционирование, чтобы он был точно посередине страницы. Вот пример кода для этого:

let newDiv = document.createElement("div");

newDiv.style.width = '300px';

newDiv.style.height = '300px';

newDiv.style.position = 'absolute';

newDiv.style.top = '200px';

newDiv.style.left = '200px';

newDiv.style.background = 'blue';

newDiv.style.color = 'white';

newDiv.style.padding = '10px';

newDiv.style.zIndex = 1000000;

В этом коде мы определили несколько свойств для нашего кубика. Каждое из них отвечает за определенный аспект отображения кубика на странице. Например, ширина (width), высота (height), позиция (position), координаты от верха (top) и от левой части (left) страницы, цвет фона (background), цвет текста (color) и отступы (padding) внутри кубика. Все значения измеряются в пикселях, где один пиксель равен одной точке на мониторе.

Давайте добавим какой-нибудь контент внутрь нашего кубика для наглядности. Допустим, это будет просто текст "VC!!!". Для этого мы воспользуемся функцией innerHTML:

newDiv.innerHTML = 'VC!!!';

Обратите внимание! В настоящее время созданный и красочно оформленный нами элемент находится только в JavaScript среде. Для того чтобы он действительно отобразился на странице, необходимо добавить его в документ. Существует несколько способов сделать это, но мы выберем самый простой - добавить элемент после всех остальных:

document.body.appendChild(newDiv);

Давайте теперь объединим весь написанный нами код в один и выполним его в консоли:

(function () {

console.clear();

let newDiv = document.createElement("div");

newDiv.style.width = '300px';

newDiv.style.height = '300px';

newDiv.style.position = 'absolute';

newDiv.style.top = '200px';

newDiv.style.left = '200px';

newDiv.style.background = 'blue';

newDiv.style.color = 'white';

newDiv.style.padding = '10px';

newDiv.style.zIndex = 1000000;

newDiv.innerHTML = 'VC!!!';

document.body.appendChild(newDiv);

}());

Скопируйте данный код в консоль и нажмите Enter. После выполнения вы увидите примерно следующий результат:

Поздравляю! Ты только что создал свой первый код на JavaScript и успешно запустил его в консоли браузера. Важно помнить, что браузер и весь интернет работают асинхронно. То, что отображается на твоем экране, видишь только ты. Другие пользователи видят свои локальные версии страницы, поэтому, к сожалению, их глазам твой синий кубик не отобразится.

Обрати внимание - в качестве примера мы написали не слишком красивый и довольно "скучный" код. Как ты, возможно, уже догадался, в современном мире программирования на JavaScript, элементы на странице создаются намного проще и удобнее. Однако где-то в глубинах современных библиотек и упрощенного синтаксиса функций, прописаны те самые команды, которые мы только что рассмотрели.

Не забывайте, что современный JavaScript-код обычно хранится в .js-файлах на сайте. Он в целом не отличается от кода, который мы рассмотрели ранее. Вы можете изучить исходный код любой страницы и просмотреть внутренние js-файлы. Консоль - это всего лишь инструмент для быстрого выполнения кода.

Мой любимый вопрос на собеседованиях 🧐

На собеседовании с начинающими JavaScript программистами я всегда задаю один и тот же вопрос. Особенно это касается тех, кто считает себя новичками в программировании, но уже что-то умеет на JavaScript. Мой вопрос не содержит скрытого смысла или ловушки, он просто помогает быстро понять, действительно ли человек владеет заявленным языком программирования или нет.

Вопрос заключается в различии между двойным равенством (==) и тройным равенством (===) в языке программирования JavaScript.

В JavaScript существует два способа сравнения переменных между собой. Один из них - это "нестрогое сравнение" с использованием оператора == (двойное равенство). При нестрогом сравнении среда языка автоматически определяет тип данных для каждой переменной и сравнивает их значения. Например, при сравнении 0 == "0" (число и строка) JavaScript приводит обе переменные к подходящему типу и сравнивает их значения. В данном случае результатом будет "истина" (переменные равны).

Другой вид сравнения - это строгое сравнение. При использовании строгого сравнения, сначала происходит проверка типов переменных, а затем их значений. Например, если сравнивать 0 === "0", JavaScript сразу определит, что типы данных у переменных разные (число и строка) и вернет "false" (переменные не равны).

Из моего собственного опыта следует, что многие ошибки в программировании на JavaScript происходят из-за неправильного использования операторов сравнения. Вместо того чтобы внимательно учитывать типы данных, многие просто автоматически используют оператор == (двойное равенство) без раздумий. Я считаю, что хорошим стилем программирования на JavaScript является использование строгого сравнения (оператор тройное равенство ===) везде и всюду.

JavaScript - краткие итоги 📝

Подведем итоги данной статьи. Овладение навыками JavaScript и умение применять их правильно является важным этапом в профессиональном росте разработчика. Несмотря на определенные недостатки этого языка программирования, большая часть современного интернета, особенно в области интерактивности пользовательских интерфейсов, создана с использованием JavaScript. Поэтому, даже если кому-то не нравится этот язык, в целом стоит принять его существование. Или же решить избегать разработки веб-интерфейсов. Но интересный факт - я не знаю успешных веб-разработчиков, которые бы не использовали JavaScript в своей работе.

По сравнению с другими языками программирования, изучение JavaScript является относительно простым этапом обучения. Здесь нет ничего слишком сложного или уникального, что требовало бы много времени на изучение. JavaScript - это простая, понятная и линейная технология, которая прочно укоренилась в мире веб-разработки.

Я настоятельно рекомендую начать изучение JavaScript. Независимо от выбранного пути в области программирования, умение программировать для веб-разработки всегда будет востребованным и полезным навыком. Большим плюсом является то, что этот язык можно освоить быстро и начать применять его на практике, решая различные задачи. Обширная информация по обучению JavaScript доступна на образовательной платформе MDN, где подробно описаны шаги для начинающих веб-разработчиков. Желаю вам успехов в этом деле!

🔥 Нравится? Подпишись! Вместе мы победим восстание машин! 🔥

🚀 Кстати, ты можешь оказать мне поддержку и помочь развитию проекта "Войти в IT" на платформе boosty! Там я выкладываю более уникальный и профессиональный контент, иногда даже немного личный. Хочешь увидеть, как я выгляжу в повседневной жизни? Тогда переходи по ссылке: Ссылка 🚀

Кстати, у меня также имеется Telegram-канал, где публикуются посты более простого и веселого характера. Загляните по ссылке!

Дорогие коллеги-разработчики! Если у вас есть полезные ссылки на ресурсы для изучения JavaScript, пожалуйста, поделитесь ими здесь! Давайте поможем новичкам освоить эту профессию!

189   0  

Comments

    Ничего не найдено.