Signatur
Beschreibung
Math.LN10 ist eine mathematische Konstante mit dem Wert von ln(10) ≈ 2.302585092994046. Sie ist eine statische Eigenschaft des Math-Objekts. Du greifst also immer direkt über Math.LN10 darauf zu und erzeugst keine Instanz, denn Math ist kein Konstruktor.
Die Konstante brauchst du vor allem, wenn du zwischen natürlichem Logarithmus und Zehnerlogarithmus umrechnen willst. Es gilt: log10(x) = ln(x) / ln(10) und umgekehrt ln(x) = log10(x) * ln(10). Außerdem gilt Math.exp(x * Math.LN10) === 10 ** x (bis auf Rundungsfehler). Das kommt z. B. bei Dezibel-Rechnungen, pH-Werten, Größenordnungen oder logarithmischen Skalen in Diagrammen vor.
Die Eigenschaft ist nicht schreibbar, nicht aufzählbar und nicht konfigurierbar. Wenn du ihr einen Wert zuweist, passiert im Sloppy Mode nichts. Im Strict Mode wirft die Zuweisung einen TypeError.
Rückgabewert
2.302585092994046.Beispiele
Wert der Konstante ausgeben
console.log(Math.LN10);
console.log(Math.LN10 === Math.log(10));
console.log(Math.LN10.toFixed(3));
Zehnerlogarithmus über ln berechnen (Fallback)
// Umrechnung ln(x) -> log10(x)
const log10 = (x) => Math.log(x) / Math.LN10;
console.log(log10(1000));
console.log(Math.log10(1000)); // eingebaute Variante (ES2015)
Dezibel-Werte in Leistungsverhältnisse umrechnen
// 10^(dB/10) mit Math.exp und Math.LN10
const dbToRatio = (db) => Math.exp((db / 10) * Math.LN10);
const ratioToDb = (ratio) => 10 * (Math.log(ratio) / Math.LN10);
console.log(dbToRatio(20).toFixed(2));
console.log(ratioToDb(2).toFixed(2));
Schreibschutz im Strict Mode
'use strict';
try {
Math.LN10 = 3;
} catch (err) {
console.log(err instanceof TypeError);
}
console.log(Math.LN10);
// Wichtig · Fallstricke
- Rundungsfehler: Wenn du mit
Math.log(x) / Math.LN10rechnest, bekommst du bei exakten Zehnerpotenzen manchmal Werte wie2.9999999999999996statt3. Nimm lieberMath.log10()(ES2015), das ist genauer. Wenn du Stellen zählen willst (z. B. mitMath.floor), musst du das Ergebnis vorher runden. - Verwechslungsgefahr:
Math.LN10ist ln(10) ≈ 2,303. Den Kehrwert log10(e) ≈ 0,434 liefertMath.LOG10E. - Schreibschutz: Zuweisungen werden im Sloppy Mode stillschweigend ignoriert und werfen im Strict Mode einen
TypeError. - Kompatibilität: Die Konstante gibt es seit ECMAScript 1 in allen Browsern und in Node.js.