Spec-Zone.ru › JavaScript

Math.log()

Базовая поддержка Широко доступна

Эта функция хорошо зарекомендовала себя и работает на множестве устройств и версий браузеров. Она доступна во всех браузерах с июля 2015 года.

Math.log() статический метод возвращает натуральный логарифм (по основанию e) числа. То есть

∀x>0,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐(𝚡)=ln(x)=the unique y such that ey=x\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x

Попробуйте

function getBaseLog(x, y) {
  return Math.log(y) / Math.log(x);
}

// 2 x 2 x 2 = 8
console.log(getBaseLog(2, 8));
// Expected output: 3

// 5 x 5 x 5 x 5 = 625
console.log(getBaseLog(5, 625));
// Expected output: 4

Синтаксис

Math.log(x)

Параметры

x
Число, большее или равное 0.

Возвращаемое значение

Натуральный логарифм (по основанию e) x. Если x равно ±0, возвращает -Infinity. Если x < 0, возвращает NaN.

Описание

Поскольку log() является статическим методом Math, вы всегда используете его как Math.log(), а не как метод объекта Math, который вы создали (Math не является конструктором).

Если вам нужен натуральный логарифм 2 или 10, используйте константы Math.LN2 или Math.LN10. Если вам нужен логарифм по основанию 2 или 10, используйте Math.log2() или Math.log10(). Если вам нужен логарифм по другому основанию, используйте Math.log(x) / Math.log(otherBase), как показано в примере ниже; возможно, вы захотите предварительно вычислить 1 / Math.log(otherBase), поскольку умножение в Math.log(x) * constant намного быстрее.

Имейте в виду, что положительные числа, очень близкие к 1, могут привести к потере точности и сделать их натуральный логарифм менее точным. В этом случае вы можете использовать Math.log1p вместо этого.

Примеры

Использование Math.log()

Math.log(-1); // NaN
Math.log(-0); // -Infinity
Math.log(0); // -Infinity
Math.log(1); // 0
Math.log(10); // 2.302585092994046
Math.log(Infinity); // Infinity

Использование Math.log() с другим основанием

Следующая функция возвращает логарифм y по основанию x (т.е., logxy\log_x y):

function getBaseLog(x, y) {
  return Math.log(y) / Math.log(x);
}

Если вы запустите getBaseLog(10, 1000), он вернет 2.9999999999999996 из-за округления с плавающей запятой, но все равно очень близко к фактическому ответу 3.

Спецификации

Спецификация
ECMAScript® 2027 Language Specification
# sec-math.log

Совместимость с браузерами

Настольные Мобильные Серверные
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet WebView Android WebView on iOS Bun Deno Node.js
log
1
12
1
3
1
18
4
10.1
1
1.0
4.4
1
1.0.0
1.0
0.10.0

Смотрите также

  • Math.exp()
  • Math.log1p()
  • Math.log10()
  • Math.log2()
  • Math.pow()

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/log

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API