JavaScript: Аргументы как выражения
Вспомним код:
import { round } from 'hexlet-basics/math';
const result = round(10.25); // 10
Функция round()
вызывается с аргументом 10.25
.
Мы выяснили, что выражения вычисляются в значения. То есть с точки зрения JavaScript, значения и выражения — это что-то схожее. Поэтому любые значения в программе технически можно заменить выражениями.
При вызове функции можно передать в неё аргументом выражение:
const result = round(8 + 2.25); // 10
Результат будет таким же, как в первом примере, потому что выражение 8 + 2.25
вычислится в значение 10.25
, и с таким аргументом произойдет вызов round()
.
Более того, можно использовать переменные вперемешку со значениями и другими выражениями:
const number = 1.25;
const result = round(number + 7 + 2); // 10
Естественно, это работает не только с числами, а с любыми значениями и выражениями. Например, со строками.
console.log('D' + 'ragon'); // => 'Dragon'
Давайте подытожим. Взгляните на несколько примеров из текущего урока:
// простые вызовы
round(10.25); // 10
console.log('Dragon'); // => 'Dragon'
// выражения в аргументах
round(8 + 2.25); // 10
console.log('Dra' + 'gon'); // => 'Dragon'
// выражения с переменными в аргументах
number = 1.25;
round(number + 7 + 2); // 10
const text = 'Dr';
console.log(text + 'ag' + 'on'); // => 'Dragon'
Заметьте схожесть: во всех вызовах в функции передается какая-то информация, но иногда это простое, «вычисленное» значение (10.25
, 'Dragon'
), а иногда составное выражение — «не вычисленное» значение (8 + 2.25
, number + 7 + 2
, text + 'ag' + 'on'
и т.д.). При этом во всех примерах передаётся один аргумент. Когда аргументов несколько, они обязательно разделяются запятыми.
Задание
Вам доступна функция calculateDistanceBetweenTowns()
. Она принимает один аргумент, в котором должны содержаться названия двух городов через дефис. В ответ она возвращает расстояние между этими городами. Вот пример использования:
const distance = calculateDistanceBetweenTowns('Lannisport-Bayasabhad');
Напишите программу, которая использует функцию calculateDistanceBetweenTowns()
и выводит на экран расстояние между городами, записанными в переменные from
и to
.
Пожалуйста, авторизуйтесь, это необходимо для отслеживания прогресса выполнения уроков. Если у вас ещё нет учётной записи, то сейчас самое время создать аккаунт.