--- title: Math.log() slug: Web/JavaScript/Reference/Global_Objects/Math/log tags: - JavaScript - Math - Довідка - метод translation_of: Web/JavaScript/Reference/Global_Objects/Math/log ---
{{JSRef}}

Функція Math.log() повертає натуральний логарифм (тобто за основою {{jsxref("Math.E", "e")}}) від числа, що являється:

x>0,Math.log(x)=ln(x)=такий унікальнийy,для якогоey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

Функція JavaScript Math.log() еквівелентна ln(x) у математиці.

{{EmbedInteractiveExample("pages/js/math-log.html")}}

Синтаксис

Math.log(x)

Аргументи

x
Число.

Результат

Натуральний логарифм (за основою {{jsxref("Math.E", "e")}}) даного числа. Якщо число від'ємне - функція повертає {{jsxref("NaN")}}.

Опис

Якщо значення аргументу x від'ємне - функція завжди повертає {{jsxref("NaN")}}.

У зв'язку з тим, що log() - це статичний метод Math, слід завжди викликати його як Math.log(), аніж як метод створеного вами об'єкту Math (оскільки Math не являється конструктором).

Якщо вам потрібно отримати значення натурального логарифму від 2 чи 10, застосуйте вбудовані сталі {{jsxref("Math.LN2")}} чи {{jsxref("Math.LN10")}} .  Якщо вам потрібно отримати значення логарифму за основою 2 чи 10 - використайте {{jsxref("Math.log2()")}} або {{jsxref("Math.log10()")}} .  Якщо вам потрібен логарифм за іншою основою, використайте Math.log(x) / Math.log(іншаОснова), як у прикладі нижче; можливо вам також знадобиться попередньо обчислити 1 / Math.log(іншаОснова).

Приклади

Застосування Math.log()

Math.log(-1); // NaN, out of range
Math.log(0);  // -Infinity
Math.log(1);  // 0
Math.log(10); // 2.302585092994046

Застосування 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.

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

Специфікація Статус Примітка
{{SpecName('ES1')}} {{Spec2('ES1')}} Первинне визначення. Реалізовано у JavaScript 1.0.
{{SpecName('ES5.1', '#sec-15.8.2.10', 'Math.log')}} {{Spec2('ES5.1')}}  
{{SpecName('ES6', '#sec-math.log', 'Math.log')}} {{Spec2('ES6')}}  
{{SpecName('ESDraft', '#sec-math.log', 'Math.log')}} {{Spec2('ESDraft')}}  

Підтримка у браузерах

{{Compat("javascript.builtins.Math.log")}}

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