/
Программирование
/
Курс JavaScript
/

Выражения в определениях

JavaScript: Выражения в определениях

Мы уже знаем, что выражения можно составлять из нескольких операций. Но если записать всё вычисление в одну длинную строку, код быстро становится трудным для чтения.

Например, вот такая запись работает:

const yuansCount = 50 * 1.25 * 6.91;
console.log(yuansCount); // => 431.875

JavaScript легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:

  • Что означает 1.25?
  • Что означает 6.91?
  • Где заканчивается один шаг вычисления и начинается следующий?

Чтобы сделать такие вычисления понятнее, переменные можно использовать внутри других выражений. Сначала программа сохраняет промежуточный результат в переменную, а затем подставляет значение этой переменной в следующее вычисление.

Выражения

Любое вычислимое значение — это выражение. Переменной можно присвоить выражение, а не только готовое значение.

const sum = 3 + 4;          // => 7
const text = 'Hello' + '!'; // => 'Hello!'
const doubled = sum * 2;    // => 14

JavaScript сначала вычисляет выражение справа от =, а результат сохраняет в переменную слева.

Конвертация валют через промежуточную валюту

Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро → доллары → юани. Так часто работают банки при оплате покупок за рубежом.

Шаг 1. Евро → Доллары

Допустим, курс: 1 евро = 1.25 доллара. Хотим перевести 50 евро:

const dollarsPerEuro = 1.25;
const dollarsCount = 50 * dollarsPerEuro;
console.log(dollarsCount); // => 62.5

В этой строке 50 * dollarsPerEuro является выражением, а dollarsCount представляет собой переменную, в которую записывается результат. JavaScript сначала вычисляет выражение, а уже потом сохраняет результат в переменную.

Движку всё равно, как записано выражение:

const dollarsCount = 62.5;

или

const dollarsCount = 50 * dollarsPerEuro;

Результат будет один и тот же. Но для человека второй вариант полезнее: по имени dollarsCount сразу видно, что на этом шаге мы получили сумму в долларах.

Шаг 2. Доллары → Юани

Теперь переведём 50 евро в юани, используя доллар как промежуточную валюту. Допустим, курсы валют: 1 доллар = 6.91 юаня, 1 евро = 1.25 доллара.

const dollarsPerEuro = 1.25;
const yuansPerDollar = 6.91;

const dollarsCount = 50 * dollarsPerEuro;
const yuansCount = dollarsCount * yuansPerDollar;

console.log(yuansCount);

Этот код длиннее, чем одна строка 50 * 1.25 * 6.91, но читать его проще:

  • видно, что 1.25 это курс евро к доллару;
  • видно, что 6.91 это курс доллара к юаню;
  • видно, что dollarsCount является промежуточным результатом.

Особенно это станет заметно, если не возвращаться к коду хотя бы неделю. А теперь представьте, что в проекте сотни тысяч строк кода. Если бы в таких проектах не было промежуточных переменных и вычислений, в них было бы невозможно разобраться.

Что нужно запомнить

  • Если выражение получается слишком длинным, его лучше разбить на несколько шагов.
  • Переменные помогают сохранять промежуточные результаты и делают вычисления понятнее.
  • Когда переменная используется в выражении, JavaScript подставляет её значение и продолжает вычисление.

Задание

Дано количество евро: eurosCount = 100. Напишите программу, которая:

  1. Переводит евро в доллары по курсу 1.25 и выводит результат.
  2. Переводит доллары в юани по курсу 6.91 и выводит результат.

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

Полезное

Команда проекта находится в телеграм-сообществе. Там можно задать любой вопрос и повлиять на проект

Нашли ошибку? Есть что добавить? Пулреквесты приветствуются