Math.log()

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

x>0,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐(𝚡)=ln(x)=такий унікальний y , для якого ey=x\forall x > 0,;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{такий унікальний } y \text{ , для якого } e^y = x

Спробуйте його в дії

Синтаксис

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 (тобто logxy\log_x y):

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

Якщо запустити getBaseLog(10, 1000), вона поверне 2.9999999999999996 у зв'язку з округленням чисел з рухомою комою, що дуже близько до правильної відповіді — 3.

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

Сумісність із браузерами

desktop mobile server
Chrome Edge Firefox Internet Explorer Opera Safari WebView Android Chrome Android Firefox for Android Opera Android Safari on iOS Samsung Internet Deno Node.js
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

Дивіться також