Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

Math : méthode statique log()

Baseline Large disponibilité

Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.

La méthode statique Math.log() retourne le logarithme naturel (base e) d'un nombre. C'est-à-dire

x>0,𝙼𝚊𝚝𝚑.𝚕𝚘𝚐(𝚡)=ln(x)=l'unique y tel que ey=x\forall x > 0,\;\mathtt{\operatorname{Math.log}(x)} = \ln(x) = \text{the unique } y \text{ such that } e^y = x

Exemple interactif

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

// 2 x 2 x 2 = 8
console.log(getBaseLog(2, 8));
// Sortie attendue : 3

// 5 x 5 x 5 x 5 = 625
console.log(getBaseLog(5, 625));
// Sortie attendue : 4

Syntaxe

js
Math.log(x)

Paramètres

x

Un nombre supérieur ou égal à 0.

Valeur de retour

Le logarithme naturel (base e) de x. Si x est ±0, retourne -Infinity. Si x < 0, retourne NaN.

Description

Parce que log() est une méthode statique de Math, vous l'utilisez toujours comme Math.log(), plutôt que comme une méthode d'un objet Math que vous avez créé (Math n'est pas un constructeur).

Si vous avez besoin du logarithme naturel de 2 ou 10, utilisez les constantes Math.LN2 ou Math.LN10. Si vous avez besoin d'un logarithme en base 2 ou 10, utilisez Math.log2() ou Math.log10(). Si vous avez besoin d'un logarithme dans d'autres bases, utilisez Math.log(x) / Math.log(otherBase) comme dans l'exemple ci-dessous ; vous pouvez vouloir pré-calculer 1 / Math.log(otherBase) puisque la multiplication dans Math.log(x) * constant est beaucoup plus rapide.

Attention aux nombres positifs très proches de 1 qui peuvent subir une perte de précision et rendre leur logarithme naturel moins précis. Dans ce cas, vous pouvez utiliser Math.log1p à la place.

Exemples

Utiliser Math.log()

js
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

Utiliser Math.log() pour construire un logarithme sur une autre base

La fonction suivante retourne le logarithme de y de base x (c'est-à-dire logxy\log_x y) :

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

Si vous exécutez getBaseLog(10, 1000), la fonction retourne 2.9999999999999996 en raison de l'arrondi en virgule flottante, mais ce résultat reste très proche de la réponse réelle, qui est 3.

Spécifications

Spécification
ECMAScript® 2027 Language Specification
# sec-math.log

Compatibilité des navigateurs

Voir aussi