Math.log()
Статичний метод Math.log()
повертає натуральний логарифм (за основою e) числа. Тобто
Спробуйте його в дії
Синтаксис
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(іншаОснова)
, як це показано в прикладі нижче; можливо, ви також захочете заздалегідь обчислити значення 1 / Math.log(іншаОснова)
, оскільки множення 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
(тобто ):
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
Якщо запустити getBaseLog(10, 1000)
, вона поверне 2.9999999999999996
у зв'язку з округленням чисел з рухомою комою, що дуже близько до правильної відповіді — 3.
Специфікації
Сумісність із браузерами
desktop | mobile | server | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
log
|
Chrome Full support 1 | Edge Full support 12 | Firefox Full support 1 | Internet Explorer Full support 3 | Opera Full support 3 | Safari Full support 1 | WebView Android Full support 1 | Chrome Android Full support 18 | Firefox for Android Full support 4 | Opera Android Full support 10.1 | Safari on iOS Full support 1 | Samsung Internet Full support 1.0 | Deno Full support 1.0 | Node.js Full support 0.10.0 |