JavaScript: Выражения в определениях
Мы уже знаем, что выражения можно составлять из нескольких операций. Но если записать всё вычисление в одну длинную строку, код быстро становится трудным для чтения.
Например, вот такая запись работает:
const yuansCount = 50 * 1.25 * 6.91;
console.log(yuansCount); // => 431.875JavaScript легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:
- Что означает
1.25? - Что означает
6.91? - Где заканчивается один шаг вычисления и начинается следующий?
Чтобы сделать такие вычисления понятнее, переменные можно использовать внутри других выражений. Сначала программа сохраняет промежуточный результат в переменную, а затем подставляет значение этой переменной в следующее вычисление.
Выражения
Любое вычислимое значение — это выражение. Переменной можно присвоить выражение, а не только готовое значение.
const sum = 3 + 4; // => 7
const text = 'Hello' + '!'; // => 'Hello!'
const doubled = sum * 2; // => 14JavaScript сначала вычисляет выражение справа от =, а результат сохраняет в переменную слева.
Конвертация валют через промежуточную валюту
Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро → доллары → юани. Так часто работают банки при оплате покупок за рубежом.
Шаг 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.25и выводит результат. - Переводит доллары в юани по курсу
6.91и выводит результат.
Используйте переменные для хранения промежуточных значений.
Полезное
JavaScript: Выражения в определениях
Мы уже знаем, что выражения можно составлять из нескольких операций. Но если записать всё вычисление в одну длинную строку, код быстро становится трудным для чтения.
Например, вот такая запись работает:
const yuansCount = 50 * 1.25 * 6.91;
console.log(yuansCount); // => 431.875JavaScript легко вычислит это выражение. Но человеку читать такой код уже не так удобно. Сразу возникают вопросы:
- Что означает
1.25? - Что означает
6.91? - Где заканчивается один шаг вычисления и начинается следующий?
Чтобы сделать такие вычисления понятнее, переменные можно использовать внутри других выражений. Сначала программа сохраняет промежуточный результат в переменную, а затем подставляет значение этой переменной в следующее вычисление.
Выражения
Любое вычислимое значение — это выражение. Переменной можно присвоить выражение, а не только готовое значение.
const sum = 3 + 4; // => 7
const text = 'Hello' + '!'; // => 'Hello!'
const doubled = sum * 2; // => 14JavaScript сначала вычисляет выражение справа от =, а результат сохраняет в переменную слева.
Конвертация валют через промежуточную валюту
Представим, что нужно перевести евро в юани, но напрямую такой курс нам недоступен. Тогда сделаем это в два шага: евро → доллары → юани. Так часто работают банки при оплате покупок за рубежом.
Шаг 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.25и выводит результат. - Переводит доллары в юани по курсу
6.91и выводит результат.
Используйте переменные для хранения промежуточных значений.
Полезное
Ваше упражнение проверяется по этим тестам
// @ts-check
import { expect, test, vi } from 'vitest';
test('variables expressions', async () => {
const consoleLogSpy = vi.spyOn(console, 'log');
await import('./index.js');
const firstArg = consoleLogSpy.mock.calls.join('\n');
expect(firstArg).toBe('125\n863.75');
});Решение учителя откроется через:
20:00
