HTML / CSSJavaScriptNode jsПаттерны проектированияПрактические

Основы JavaScript

Что такое Javascript ?🧐

:pencil:JavaScript

Мультипарадигменный язык программирования. Поддерживает объектно-ориентированный, императивный и функциональный стили. Является реализацией стандарта ECMAScript (стандарт ECMA-262)

Изначально JavaScript был создан, чтобы «сделать веб-страницы живыми».

Программы на этом языке называются скриптами. Они могут встраиваться в HTML и выполняться автоматически при загрузке веб-страницы.

Скрипты распространяются и выполняются, как простой текст. Им не нужна специальная подготовка или компиляция для запуска.

Сегодня JavaScript может выполняться не только в браузере, но и на сервере или на любом другом устройстве, которое имеет специальную программу, называющуюся «движком» JavaScript.

У браузера есть собственный движок, который иногда называют «виртуальная машина JavaScript».

Возможности JavaScript в браузере

Современный JavaScript – это «безопасный» язык программирования. Он не предоставляет низкоуровневый доступ к памяти или процессору, потому что изначально был создан для браузеров, не требующих этого.

Возможности JavaScript сильно зависят от окружения, в котором он работает. Например, Node.JS поддерживает функции чтения/записи произвольных файлов, выполнения сетевых запросов и т.д.

В браузере для JavaScript доступно всё, что связано с манипулированием веб-страницами, взаимодействием с пользователем и веб-сервером.

Добавлять новый HTML-код на страницу, изменять существующее содержимое, модифицировать стили.
Реагировать на действия пользователя, щелчки мыши, перемещения указателя, нажатия клавиш.
Отправлять сетевые запросы на удалённые сервера, скачивать и загружать файлы (технологии AJAX).
Получать и устанавливать куки, задавать вопросы посетителю, показывать сообщения.
Запоминать данные на стороне клиента («local storage»).
Читать/записывать произвольные файлы на жёстком диске, копировать их или запускать программы.🛑
Закрывать окна и вкладки, которые не были открыты с его помощью🛑
Осуществлять кроссдоменные запросы, получать доступ к веб-страницам, расположенным на другом домене.🛑

Подключение

Прежде всего, необходимо узнать, как добавить сценарий JavaScript на страницу HTML. Это можно сделать одним из двух способов: поместить теги Script на Web-странице и расположить код JavaScript внутри этих тегов, или поместить весь код JavaScript в отдельный файл и связаться с ним с помощью тега Script. Любой из этих методов вполне допустим, но они имеют разное назначение.

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

Это делается для того, чтобы не нужно было загружать этот код всякий раз при посещении различных страниц. Код загружается один раз, и браузер сохраняет его для последующего использования. Это похоже на то, как используются CSS.

Примеры подключения кода JavaScript:

1<script type="text/javascript">
2var a=1;
3var b=2;
4var c = a+b;
5</script>
6<script type="text/javascript" src="scripts/main.js" />

Отладочный вывод

Вы всегда можете добавить console.log вместо, где хотите получить информацию о состоянии программы. Этот способ хорош как дополнение к остальным. Так же вы можете написать определенное условие для отладки, вставить в него console.log и поставить точку останова.

Комментирование

В любой момент вы можете выключить ту или иную часть кода, не стирая её с помощью синтаксиса комментариев.

1var a = b + 5;
2//a += prompt(); //однострочный комментарий, временно "выключаем" ввод пользователя.
3//console.log(a); //выключенный отладочный вывод, что бы не мозолил глаза, пока не нужен
4var c = somePerfectFunction(a) //функция работает хорошо
5/* if (blahala){
6asdfasdf
7
8explodeMoon()
9*/ //многострочный комментарий с большим куском кода, выключен потому что в нём куча ошибок.

Нестрогая динамическая типизация

Javascript - язык с нестрогой динамической типизацией.

Динамическая типизация означает, что одну и ту же переменную можно сначала инициализировать строкой, потом числом, потом булевым значением, и так далее. Языки со статической типизацией, как язык C, Java, подобного не позволяют.

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

Простейшие операции

1var foots = 2;
2var fingersOnTheFoot = 5;
3var hands = 2;
4var fingersOnTheHand = 2;
5var totalFingers = foots*fingersOnTheFoot + hands*fingersOnTheHand //сколько всего пальцев на ногах и руках?
6var numberOfLimbs = totalFingers / fingersOnTheHand //сколько у человека конечностей?
7var numberOfHands = numberOfLimbs - foots //сколько у человека рук?

Выражения

Выражением называется часть кода программы, которая при выполнении подменяется результатом (значением) её вычисления. Значение является экземпляром одного из типов данных JS.

Обычно выражения вычисляются в первую очередь.

1var a = 5
2var b = 10
3var c = a + b //эти две строки равнозначны
4 c = 15 //
5
6
7var helloWorld = "Hello World"; //строка
8var helloWorld2 = "Hello" + "world"; // строка
ℹ️Важно

Для того, что бы убедится в том, что данная часть кода является выражением, оберните её в скобки. Если это не вызывает ошибки интерпретатора JS, значит данный кусок кода - выражение. Иначе это не выражение.

Hello