--- title: Math.log() slug: Web/JavaScript/Reference/Global_Objects/Math/log translation_of: Web/JavaScript/Reference/Global_Objects/Math/log ---
{{JSRef}}

A função  Math.log() retorna o logaritmo natural(base {{jsxref("Math.E", "e")}}) de um número, que é:

x>0,Math.log(x)=ln(x)=the uniqueysuch thatey=x\forall x > 0, \mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique} \; y \; \text{such that} \; e^y = x

Sintaxe

Math.log(x)

Parâmetros

x
Um número.

Retorno

O logaritmo natural (base {{jsxref("Math.E", "e")}}) de um número dado. Se o número é negativo, {{jsxref("NaN")}} é retornado.

Descrição

Se o valor de  x é negativo, o retorno será sempre {{jsxref("NaN")}}.

Por log() ser um método estático de Math, você sempre o usará como Math.log(), ao invés de um método de um objeto de Math que você criou(Math não é um construtor).

Caso você precise do logaritmo natural de 2 ou 10, use as constantes {{jsxref("Math.LN2")}} ou {{jsxref("Math.LN10")}} .  Caso você precise de um logaritmo de base 2 ou 10, use {{jsxref("Math.log2()")}} ou {{jsxref("Math.log10()")}} .  Caso você precise utilizar logaritmo de outras bases, use Math.log(x) / Math.log(outraBase) como no exemplo abaixo; talvez você queira pré-calcular 1 / Math.log(outraBase) .

Exemplos

Usando Math.log()

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

Usando Math.log() como uma base diferente

As funções a seguir retornam o logaritmo de y na base x (ie. logxy\log_x y):

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

Caso você execute getBaseLog(10, 1000) será retornado 2.9999999999999996 devido ao arredondamento de ponto-flutuante, o qual é bem próximo do retorno exato de 3.

Especificações

Specification Status Comment
{{SpecName('ES1')}} {{Spec2('ES1')}} Definição inicial. Implementado no 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')}}  

Compatibilidade com navegadores

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}}

Veja também