Skip to content

Практическая работа №1

Цель работы: Научиться объявлять переменные и константы, работать с основными типами данных, выполнять арифметические операции и преобразование типов в JavaScript.

Основные теоретические положения

Section titled “Основные теоретические положения”

1. Переменные и константы

Для хранения данных в JavaScript используются переменные и константы.

let age = 18;
const name = "Alex";

let используется для объявления переменных, значение которых может изменяться.

let count = 10;
count = 15;
console.log(count);

const используется для объявления значений, которым после инициализации нельзя присвоить новое значение.

const pi = 3.14;
console.log(pi);

В современном JavaScript для объявления переменных рекомендуется использовать let и const.


2. Основные типы данных

К основным типам данных JavaScript относятся:

  • number — числа;
  • string — строки;
  • boolean — логические значения true и false;
  • undefined — значение не определено;
  • null — отсутствие значения;
  • bigint — целые числа произвольной длины;
  • symbol — уникальные значения.

Для определения типа значения используется оператор typeof.

const age = 18;
const username = "Alex";
const isStudent = true;
let result;
const selectedUser = null;
console.log(typeof age);
console.log(typeof username);
console.log(typeof isStudent);
console.log(typeof result);
console.log(typeof selectedUser);

3. Арифметические операторы

Основные арифметические операторы JavaScript:

  • + — сложение;
  • - — вычитание;
  • * — умножение;
  • / — деление;
  • % — остаток от деления;
  • ** — возведение в степень.

Пример:

const a = 10;
const b = 3;
console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(a / b);
console.log(a % b);
console.log(a ** b);

4. Преобразование типов

Для явного преобразования значений используются функции:

  • Number() — преобразование в число;
  • String() — преобразование в строку;
  • Boolean() — преобразование в логическое значение;
  • parseInt() — преобразование строки в целое число;
  • parseFloat() — преобразование строки в дробное число.

Пример:

const value = "25";
const number = Number(value);
console.log(number);
console.log(typeof number);

Если значение невозможно преобразовать в число, результатом может быть NaN.

const result = Number("JavaScript");
console.log(result);
console.log(Number.isNaN(result));

5. Особенности выполнения операций с различными типами

Оператор + используется как для сложения чисел, так и для объединения строк.

console.log(10 + 5);
console.log("10" + "5");
console.log("10" + 5);
console.log(10 + "5");

Результат:

15
105
105
105

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

console.log("10" - 5);
console.log("10" * 2);
console.log("10" / 2);

Поэтому при выполнении вычислений необходимо учитывать тип используемых данных.

Задания для выполнения

Section titled “Задания для выполнения”

Часть 1. Исследование типов данных и операций

Задание 1.1. Работа с переменными и типами данных

Создайте файл practice-1.js.

Объявите следующие переменные:

const firstName = "Иван";
const age = 18;
const height = 1.82;
const isStudent = true;
let middleName;
const address = null;

Для каждой переменной выведите:

  • значение переменной;
  • тип значения с использованием оператора typeof.

Пример:

console.log(firstName);
console.log(typeof firstName);

Определите, какой тип JavaScript возвращает оператор typeof для значения null.


Задание 1.2. Исследование арифметических операций

До запуска программы определите предполагаемый результат каждого выражения:

console.log(10 + 5);
console.log("10" + "5");
console.log("10" + 5);
console.log(10 + "5");
console.log("10" - 5);
console.log("10" * 2);
console.log("10" / 2);
console.log(10 % 3);
console.log(2 ** 5);

Запишите предполагаемые результаты.

После этого запустите программу и сравните полученные значения со своими предположениями.

Для каждого несовпадения объясните причину.


Задание 1.3. Преобразование типов данных

Даны следующие значения:

const value1 = "125";
const value2 = "15.7";
const value3 = "JavaScript";
const value4 = "";
const value5 = true;
const value6 = false;

Для каждого значения выполните преобразование с использованием:

Number()
String()
Boolean()

Выведите:

  • исходное значение;
  • результат преобразования;
  • тип полученного значения.

По результатам работы заполните таблицу:

Исходное значениеNumber()String()Boolean()
"125"
"15.7"
"JavaScript"
""
true
false

Задание 1.4. Работа с Number(), parseInt() и parseFloat()

Определите результаты выполнения следующих выражений:

Number("25");
parseInt("25");
Number("25.7");
parseInt("25.7");
Number("25px");
parseInt("25px");
Number("12.5px");
parseFloat("12.5px");

Ответьте на вопросы:

  1. Чем отличаются Number() и parseInt()?
  2. Как работает parseFloat()?
  3. В каких случаях результатом становится NaN?

Часть 2. Задания для самостоятельного выполнения

Задание 2.1. Стоимость заказа

Даны следующие значения:

const price = 1499;
const quantity = 3;
const discount = 10;

Рассчитайте:

  1. стоимость товаров без скидки;
  2. размер скидки в рублях;
  3. итоговую стоимость заказа.

Результат должен выводиться в следующем виде:

Цена товара: 1499 руб.
Количество: 3
Стоимость без скидки: 4497 руб.
Скидка: 449.7 руб.
Итого: 4047.3 руб.

Все вычисления должны выполняться программой.


Задание 2.2. Среднее значение

Даны результаты четырёх измерений:

const value1 = 18.5;
const value2 = 21.3;
const value3 = 19.8;
const value4 = 20.4;

Рассчитайте:

  1. среднее арифметическое всех измерений;
  2. разницу между каждым измерением и средним значением.

Пример вывода:

Среднее значение: ...
Отклонение первого измерения: ...
Отклонение второго измерения: ...
Отклонение третьего измерения: ...
Отклонение четвертого измерения: ...

Задание 2.3. Работа со временем

Дано количество секунд:

const totalSeconds = 7384;

Определите:

  • количество полных часов;
  • количество полных минут после выделения часов;
  • количество оставшихся секунд.

Для выполнения задания используйте арифметические операции и оператор %.

Результат должен иметь следующий вид:

7384 секунд = 2 ч. 3 мин. 4 сек.

Задание 2.4. Расчёт стоимости поездки

Создайте программу расчёта стоимости автомобильной поездки.

Исходные данные:

const distance = 450;
const fuelConsumption = 8.2;
const fuelPrice = 63.5;

где:

  • distance — расстояние поездки в километрах;
  • fuelConsumption — расход топлива на 100 км;
  • fuelPrice — стоимость одного литра топлива.

Программа должна рассчитать:

  1. необходимое количество топлива;
  2. стоимость топлива;
  3. стоимость поездки туда и обратно;
  4. стоимость поездки на одного человека, если расходы делятся между четырьмя людьми.

Выведите исходные данные и результаты расчётов в понятном виде.

После выполнения измените исходные данные:

const distance = 720;
const fuelConsumption = 7.4;
const fuelPrice = 65.2;

Повторно выполните программу.

Изменение исходных данных не должно требовать изменения формул.


Задание 2.5. Конвертер единиц

В одной программе выполните следующие преобразования:

  1. километры в мили;
  2. градусы Цельсия в градусы Фаренгейта;
  3. гигабайты в мегабайты.

Используйте следующие соотношения:

1 км = 0.621371 мили
1 ГБ = 1024 МБ
F = C × 9 / 5 + 32

Исходные значения должны храниться в отдельных переменных.

Пример результата:

10 км = 6.21371 мили
25 °C = 77 °F
8 ГБ = 8192 МБ

Задание 2.6. Расчёт времени загрузки файла

Даны:

const fileSize = 1500;
const speed = 80;

где:

  • fileSize — размер файла в мегабайтах;
  • speed — скорость соединения в мегабитах в секунду.

Учтите:

1 байт = 8 бит

Рассчитайте:

  1. размер файла в мегабитах;
  2. время загрузки файла в секундах;
  3. количество полных минут;
  4. количество оставшихся секунд.

Результат должен быть представлен в понятном виде:

Размер файла: 1500 МБ
Скорость соединения: 80 Мбит/с
Время загрузки: ... сек.
Приблизительно: ... мин. ... сек.
  1. В чём различие между let и const?
  2. Для чего используется оператор typeof?
  3. Какие основные типы данных существуют в JavaScript?
  4. Почему выражение "10" + 5 возвращает строку?
  5. Для чего используется функция Number()?
  6. Чем Number() отличается от parseInt()?
  7. Что представляет собой значение NaN?
  8. Для чего используется оператор %?
  9. Какой результат возвращает typeof null?
  10. Почему при выполнении математических операций важно учитывать тип данных?

Рекомендуемая литература

Section titled “Рекомендуемая литература”
  1. MDN Web Docs — JavaScript Guide.
  2. MDN Web Docs — JavaScript data types and data structures.
  3. Флэнаган Д. JavaScript. Подробное руководство.
  4. Хавербеке М. Выразительный JavaScript.