Конспект «Основы программирования на JavaScript»
Программа — это набор команд. JavaScript выполняет программу последовательно, команда за командой. Команды разделяются точкой с запятой ;.
Консоль
Чтобы вывести информацию в консоль, используем команду console.log:
console.log(данные для вывода в консоль);
Эту команду можно использовать в любом месте программы и выводить в консоль результаты выполнения операций и текстовые подсказки. Текстовые подсказки, в отличие от результатов операций, нужно заключать в кавычки.
Комментарии
Комментарии не выводятся в консоль и не влияют на работу программы, но видны разработчику. Код внутри комментариев не выполняется. Обычно в них пишут поясняющие тексты для себя, или для других, или для себя в будущем.
Комментарии бывают двух типов: однострочные и многострочные:
// Эта строка кода не выполнится. Однострочный комментарий.
/*
Все эти строки кода не выполнятся.
Так как это многострочный комментарий.
*/Типы данных
С разными типами данных можно производить разные действия, поэтому программисту важно знать, с чем он работает. В нашей консоли тип данных выводится в скобках, например (String) или (Number).
Существуют простые и сложные типы данных. Простые:
number— числа: целые и с точкой;string— строки;boolean— логические, или булевы, значения:true— «истина» иfalse— «ложь»;undefined— «не определено», англ.
Строки нужно оборачивать в кавычки: одинарные или двойные.
Сложные, или составные, типы содержат не одно, а несколько значений. Массив, array, хранит последовательность значений, и порядок этих значений важен. Объект, object, состоит из множества пар «ключ-значение», порядок этих пар не важен.
// Массив
[1, 2, 3, 4, 5]
// Объект
{month: 'june', day: 15}Переменные
Переменная — просто название для данных, которое можно делать понятным для людей. Переменные упрощают работу с памятью: они «приклеиваются» к ячейкам памяти, как наклейка с названием приклеивается к папке с документами.
В JavaScript переменные можно создавать командой let, за которой следует имя переменной:
let имяПеременной;Имя переменной можно записать по-разному. Два самых популярных способа: camelCase (верблюжья нотация) и snake_case (змеиная нотация). В первом случае все слова пишутся слитно и каждое слово, за исключением первого, начинается с большой буквы (myNumber, userName). Во втором случае все слова разделяются нижним подчёркиванием (my_number, my_name).
Имена переменных в JavaScript чувствительны к регистру: myname и myName — две разные переменные. Имя переменной может содержать буквы, цифры и знак подчёркивания, но оно не должно начинаться с цифры. Кроме того, в качестве имени переменной нельзя использовать ключевые слова, такие как let или if. Вот полный список этих ключевых слов.
После создания переменной её можно использовать в других командах, например, выводить в консоль:
// Обратите внимание, что кавычек нет!
console.log(имяПеременной);Если обратиться к пустой переменной, то получим undefined — «не определено». Чтобы записать в переменную данные, ей их нужно присвоить. Для операции присваивания используется знак равенства:
let timeInHours;              // Объявляем переменную
console.log(timeInHours);     // Выведет: undefined
timeInHours = 2;              // Присваиваем одно значение
console.log(timeInHours);     // Выведет: 2
timeInHours = 'три часа';     // Присваиваем совершенно другое значение
console.log(timeInHours);     // Выведет: три часаКоманда let для создания каждой переменной используется всего один раз. Дальше мы обращаемся к переменной по её имени, без let. Если повторно задать значение переменной, то значение этой переменной изменится. Предыдущее значение при этом исчезнет. Это называется переопределением переменной.
Операции и операторы
Команды состоят из операций. 5 + 10; — это операция. Она состоит из оператора, +, и двух операндов, 5 и 10.
Оператор указывает, что произойдёт с операндами. Операции бывают унарными, бинарными и тернарными, в зависимости от количества операндов. Бинарные операции самые распространённые.
Над разными типами операндов можно производить разные операции, поэтому важно понимать, данные какого типа хранятся в переменных.
Порядок выполнения операций зависит от их приоритета. Если у операций одинаковый приоритет, они выполняются слева направо. Приоритет различных операторов можно посмотреть здесь.
Арифметические операции
Арифметические операции в JavaScript выполняются так же, как в математике: сначала умножение, потом сложение. Изменить порядок операций можно с помощью круглых скобок. Снова как в математике: выражение в скобках посчитается в первую очередь.
| Сложение | + | 
| Вычитание | - | 
| Умножение | * | 
| Деление | / | 
Конкатенация
Самая частая строковая операция — это «склеивание» строк, или конкатенация:
let name = 'Кекс';
'Инструктор' + 'Кекс';  // Результат: 'ИнструкторКекс'
'Инструктор ' + 'Кекс'; // Результат: 'Инструктор Кекс'
'Инструктор ' + name;   // Результат: 'Инструктор Кекс'Конкатенация позволяет делать сообщения программ более информативными и «человечными».
Приведение типов
Что будет, если использовать операнды разного типа?
'Время, мин: ' + 50; // Результат: 'Время, мин: 50'
'2' * 50;            // Результат: 100JavaScript попытается привести операнды к одному типу и выполнить операцию. Подходящий тип будет выбираться в зависимости от операции.
Плюс может быть знаком сложения или конкатенации, но так как один из операндов — строка, то сложение не подходит. Поэтому число 50 приводится к строке '50' и склеивается со строкой 'Время, мин: '.
Звёздочка — это знак умножения, со строками она не используется. Поэтому JavaScript пытается превратить строку '2' в число, и ему это удаётся. Затем числа 2 и 50 перемножаются, и получается 100.
Из-за того, что JavaScript умеет изменять тип операндов на лету, он называется языком со слабой типизацией.