Learn JavaScript

Math.exp() - метод для вычисления e в степени x в JavaScript

Math.exp() возвращает число e в степени x.

Проще всего запомнить так: Math.exp(x) - это то же самое, что e^x.

Синтаксис

Math.exp(x)

x - степень, в которую нужно возвести число e.

Что делает Math.exp()

Метод вычисляет экспоненту числа.

console.log(Math.exp(0)); // 1
console.log(Math.exp(1)); // 2.718281828459045
console.log(Math.exp(2)); // 7.38905609893065

То есть:

  • Math.exp(0) даёт 1
  • Math.exp(1) даёт число e
  • Math.exp(2) даёт e во второй степени

Что возвращает Math.exp()

Math.exp() возвращает число типа number.

const result = Math.exp(3);

console.log(result);        // 20.085536923187668
console.log(typeof result); // "number"

Почему Math.exp(0) равно 1

Это базовое свойство степеней.

console.log(Math.exp(0)); // 1

Любое ненулевое число в степени 0 даёт 1, и число e здесь не исключение.

Отрицательные значения

Если аргумент отрицательный, результат всё равно будет положительным, но меньше 1.

console.log(Math.exp(-1)); // 0.36787944117144233
console.log(Math.exp(-2)); // 0.1353352832366127

Это то же самое, что обратная степень:

console.log(Math.exp(-1)); // 1 / e

Важно не путать это с отрицательным результатом. Math.exp() не возвращает отрицательные числа для обычных конечных аргументов.

Большие значения

Если аргумент большой, результат растёт очень быстро.

console.log(Math.exp(5));  // 148.4131591025766
console.log(Math.exp(10)); // 22026.465794806718

На очень больших значениях результат может уйти в Infinity.

console.log(Math.exp(1000)); // Infinity

Math.exp() и Math.E ** x

Эти записи дают один и тот же результат.

console.log(Math.exp(2));    // 7.38905609893065
console.log(Math.E ** 2);    // 7.38905609893065

Разница только в форме записи:

  • Math.exp(x) прямо говорит “e в степени x”
  • Math.E ** x записывает то же самое через оператор степени

Если в коде важна читаемость именно как экспоненты, Math.exp() часто выглядит понятнее.

Math.exp() и Math.log()

Эти методы связаны друг с другом.

console.log(Math.log(Math.exp(3))); // 3
console.log(Math.exp(Math.log(5))); // 4.999999999999999

Идея здесь такая:

  • Math.exp(x) делает e^x
  • Math.log(x) делает обратную операцию

Во втором примере может быть не идеально ровное 5 из-за особенностей хранения дробных чисел в JavaScript.

Без аргумента

Если вызвать Math.exp() без аргумента, результатом будет NaN.

console.log(Math.exp()); // NaN

Так происходит потому, что метод попытается обработать undefined как число.

Неявное приведение типов

Math.exp() сначала пытается привести аргумент к числу.

console.log(Math.exp("2"));   // 7.38905609893065
console.log(Math.exp(null));  // 1
console.log(Math.exp(true));  // 2.718281828459045
console.log(Math.exp(undefined)); // NaN

На практике обычно лучше передавать в метод уже готовое число.

NaN и Infinity

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

console.log(Math.exp(NaN));        // NaN
console.log(Math.exp(Infinity));   // Infinity
console.log(Math.exp(-Infinity));  // 0

Это удобно помнить:

  • Infinity даёт Infinity
  • -Infinity даёт 0

Число не меняется

Math.exp() не изменяет исходное значение. Он только возвращает новый результат.

const value = 2;
const result = Math.exp(value);

console.log(value);  // 2
console.log(result); // 7.38905609893065

Когда это полезно

Math.exp() удобно использовать, когда:

  • нужно вычислить e^x
  • вы работаете с экспоненциальным ростом или спадом
  • формула уже записана через число e
  • нужно сделать обратную операцию к Math.log()

Пример:

const x = 1.5;

console.log(Math.exp(x));

Частые ошибки

Думать, что Math.exp(x) - это просто x в степени 2

console.log(Math.exp(2)); // 7.38905609893065
console.log(2 ** 2);      // 4

Math.exp(x) - это не x^2, а именно e^x.

Путать Math.exp() и 10 в степени x

console.log(Math.exp(2)); // 7.38905609893065
console.log(10 ** 2);     // 100

Основание у Math.exp() всегда одно и то же - это число e, а не 10.

Ожидать отрицательный результат для отрицательного аргумента

console.log(Math.exp(-2)); // 0.1353352832366127

Результат становится меньше 1, но не становится отрицательным.

Быстрая памятка

  • Math.exp(x) вычисляет e^x
  • метод возвращает number
  • Math.exp(0) равно 1
  • отрицательные аргументы дают положительный результат меньше 1
  • Math.exp(x) и Math.E ** x дают один и тот же результат
  • Math.log() делает обратную операцию

Коротко

Math.exp() - это стандартный способ вычислить e в степени x в JavaScript. Главное, что стоит запомнить: метод работает именно с основанием e, быстро растёт на больших значениях и логически связан с Math.log() как обратная операция.