1. Модульное тестирование JavaScript-функции

 

Рассмотрим пример проверки функции, которая вычисляет итоговую стоимость покупки с учётом количества товаров.

 

JavaScript-код:

 

function calculateTotal(price, quantity) {

    return price * quantity;

}

 

function testCalculateTotal() {

    const actual = calculateTotal(1500, 3);

    const expected = 4500;

 

    if (actual === expected) {

        console.log("Тест пройден");

    } else {

        console.log("Тест не пройден");

    }

}

 

testCalculateTotal();

 

Объяснение:

 

calculateTotal() — функция, которую необходимо проверить.

actual — фактический результат выполнения функции.

expected — ожидаемый результат.

if — сравнивает фактический и ожидаемый результаты.

 

Результат:

 

Тест пройден

 

Функция возвращает 4500, что соответствует ожидаемому результату.

 

Такой тест проверяет отдельную функцию, поэтому относится к модульному тестированию (Unit Testing).

 

 

2. Анализ времени выполнения операции

 

Рассмотрим пример измерения времени выполнения JavaScript-кода.

 

JavaScript-код:

 

console.time("Calculation");

 

let sum = 0;

 

for (let i = 1; i <= 1000000; i++) {

    sum += i;

}

 

console.timeEnd("Calculation");

 

console.log("Сумма:", sum);

 

Объяснение:

 

console.time() — начинает измерение времени.

console.timeEnd() — завершает измерение и выводит длительность.

for — выполняет повторяющиеся вычисления.

sum — хранит результат сложения.

 

Результат:

 

В консоли браузера отображается время выполнения операции, например:

 

Calculation: 3.5 ms

 

Сумма: 500000500000

 

Время является примерным и зависит от устройства и браузера.

 

Для более подробного анализа производительности можно использовать вкладку Performance в инструментах разработчика браузера.

 

 

3. Оптимизация загрузки изображений

 

Рассмотрим пример веб-страницы университета, на которой размещены фотографии учебных корпусов.

 

Первоначальный HTML-код:

 

<img src="building1.jpg" alt="Главный корпус">

<img src="building2.jpg" alt="Учебный корпус">

<img src="building3.jpg" alt="Библиотека">

 

Оптимизированный HTML-код:

 

<img

    src="building1.webp"

    alt="Главный корпус"

    width="600"

    height="400"

> 

 

<img

    src="building2.webp"

    alt="Учебный корпус"

    width="600"

    height="400"

    loading="lazy"

> 

 

<img

    src="building3.webp"

    alt="Библиотека"

    width="600"

    height="400"

    loading="lazy"

> 

 

Объяснение:

 

WebP — формат изображений, который часто позволяет уменьшить размер файлов.

loading="lazy" — включает отложенную загрузку изображения.

width и height — задают размеры изображения и помогают браузеру заранее выделить место в макете.

alt — содержит текстовое описание изображения.

 

Результат:

 

Изображения, находящиеся далеко за пределами видимой области, могут загружаться позднее.

 

Указанные размеры помогают уменьшить нежелательные смещения элементов страницы.

 

При использовании правильно сжатых изображений WebP может уменьшиться объём передаваемых данных.

 

Важно: фотографии должны быть предварительно преобразованы в формат WebP. Основное изображение, необходимое для первоначального отображения страницы, не следует без необходимости загружать отложенно.