Math.log()

A função  Math.log() retorna o logaritmo natural(base 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 e) de um número dado. Se o número é negativo, NaN é retornado.

Descrição

Se o valor de  x é negativo, o retorno será sempre 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 Math.LN2 ou Math.LN10 .  Caso você precise de um logaritmo de base 2 ou 10, use Math.log2() ou 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
ECMAScript 1st Edition (ECMA-262) Padrão Definição inicial. Implementado no JavaScript 1.0.
ECMAScript 5.1 (ECMA-262)
The definition of 'Math.log' in that specification.
Padrão  
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.log' in that specification.
Padrão  
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.log' in that specification.
Rascunho  

Compatibilidade de navegadores

Estamos convertendo nossos dados de compatibilidade para o formato JSON. Esta tabela de compatibilidade ainda usa o formato antigo, pois ainda não convertemos os dados que ela contém. Descubra como você pode ajudar!
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support (Yes) (Yes) (Yes) (Yes) (Yes)
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support (Yes) (Yes) (Yes) (Yes) (Yes) (Yes)

Veja também