WEB-ПРОГРАММИРОВАНИЕ
Лекция 1 Web-программирование
Вт 10 фев 2026 14:53:21 MSK
Домашние работы
Как только оканчивается тема, с момента последней лекции по этой теме - 2 недели по этому заданию; надо отправить решение. Мягкий дедлайн (оценка 5), сделать за 2 недели. Кто делает за 3 недели, тому минус половина за задание; а тот, кто больше, то не принимается.
Лабораторные занятия двух видов:
- На первых рассказываются практическую информации, которой нет на лекциях (код на них не пишем)
- …
На лабораторных занятиях можно задавать вопросы и т. д.
Первую часть семестра мы пишем front-end, а вторую часть - back-end, потом их объединяем.
Основы JavaScript Ч. 1
Код “Привет, мир!”:
console.log('Hello, World!');
// => Hello, World!Различные арифметические операции:
console.log(10);
console.log(3 * 5 - 2);
console.log(7 * 3 + (4 / 2) - (8 + (2 - 1)));AirBnb - компания, создавшая стандарт для форматирования
кода на javaScript (js).
Линтер - программа, которая проверяет код на стиль написания (отступы, пробелы, упрощение чтение и т. д.), и может автоматически отформатировать текст кода.
Кавычки имеют разницу в js. По стандарту
AirBnb, лучше использовать одинарные кавычки.
Сложение нескольких строк в одну (конкатенация):
console.log('Dragon' + 'stone');
// => Dragonstone
console.log('6' + '9');
// => 69Создание переменной:
let variable;
let new_variable = "lol";
console.log(variable);
// => undefined
console.log(new_variable);
// => lolСоздание константы:
const word = "lol";
word = "kek" // Будет ошибкаМожно записывать в переменную выражение:
let count = 35 + 34
console.log(count)
// => 69Стили именования
Стили:
- kebab-case
- snake_case
- CamelCase
- lowerCamelCase
В JavaScipt используется CamelCase и его
вариация lowerCamelCase. Для переменных
lowerCamelCase, а для наименования классов —
CamelCase.
Магические числа
Использование в выражениях числовых коэффициентов без объяснения это плохая практика. Код должен быть самодокументированным.
// Плохая практика
let dollarsCount = 50 * 1.25;
// Хорошая практика
let dollarsPerEuro = 1.25
let dollarsCount = 50 * dollarsPerEuroТакже хорошей практикой будет разбиение кода на отдельные блоки с помощью пустых строк (как код сверху, два блока разделены пустой строкой).
Интерполяция
Примитивный способ:
const firstName = 'lol';
const greetings = 'Zdarova';
console.log(greeting + ', ' + firstName + '!');
// => Zdarova, lol!Интерполяция:
console.log(`${greeting}, ${firstName}!`);
// => Zdarova, lol!Извлечение символов из строки
const firstName = "Lol";
console.log(firstName[0]);
// => Lconst firstName = "Lol";
console.log(firstName[5]);
// => undefinedТипы данных
Примитивные типы:
- Number
- BigInt
- String
Составной тип:
- Object (на его базе есть и другие: массивы, даты и т. д.)
Object:
// Похоже на словари в python
const user = {name: 'Lol', age: 20};undefined
undefined— специальное значение особого типа, которое означает отсутствие значения. Обращение к неиспользуемому месту в памятиnull— явное указание на отсутствие значения
Явное преобразование типов
parseInt()(пытается преобразовать в целое число, при этом дробная часть отбрасывается полностью)parseFloat()(пытается преобразовать в вещественное число)
Неизменяемость и примитивные тиы
JS не изменит неизменяемый тип данных
(String), но и не выведет ошибки
let firstName = 'Alexander';
firstName[0] = B;
console.log(firstName);
// => AlexanderНо можно изменить изменяемую переменную:
let firstName = 'Alexander';
firstName = 'Blexander';
console.log(firstName);
// => BlexanderСлабая типизация
В JS очень слабая типизация: когда JS видит
несоответствие типов, он пытается сам преобразовать данные
Основы JavaScript Ч. 2
Функции
Есть встроенные в язык и написанные самим разработчиком функции. В
JS есть модули (файлы с кодом на JS и
расширением файла .js), а есть пакеты (набор модулей).
// length - функция, написанная разработчиком в файле string.js
import { length } from './js-basics/string.js';
// использование функций
const result = length('Hello!');
console.log(result); // => 6В JS есть стандартная библиотека, которая предоставляет
встроенные функции. При запуске в браузере эти функции находятся в одном
пространстве имен с программой, и их даже не надо импортировать.
Сигнатура функции
- Функция
Math.pow(), возводящая число в степень, принимает два параметра - Если вызвать
pow()без параметров, то вернетсяNaN - Функция честно пытается выполнить возведение в степень, но если
значение не передано, то будет ошибка
undefined
const result = Math.pow(2, 'boom');
console.log(result); // => NaN