Math.log()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
Phương thức tĩnh Math.log() trả về logarithm tự nhiên (cơ số e) của một số. Cụ thể:
Try it
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
// 2 x 2 x 2 = 8
console.log(getBaseLog(2, 8));
// Expected output: 3
// 5 x 5 x 5 x 5 = 625
console.log(getBaseLog(5, 625));
// Expected output: 4
Cú pháp
Math.log(x)
Tham số
x-
Một số lớn hơn hoặc bằng 0.
Giá trị trả về
Logarithm tự nhiên (cơ số e) của x. Nếu x là ±0, trả về -Infinity. Nếu x < 0, trả về NaN.
Mô tả
Vì log() là một phương thức tĩnh của Math, bạn luôn sử dụng nó dưới dạng Math.log(), thay vì là phương thức của một đối tượng Math bạn tạo ra (Math không phải là constructor).
Nếu bạn cần logarithm tự nhiên của 2 hoặc 10, hãy dùng hằng số Math.LN2 hoặc Math.LN10. Nếu cần logarithm cơ số 2 hoặc 10, hãy dùng Math.log2() hoặc Math.log10(). Nếu cần logarithm cơ số khác, hãy dùng Math.log(x) / Math.log(otherBase) như ví dụ bên dưới; bạn có thể tính trước 1 / Math.log(otherBase) vì phép nhân trong Math.log(x) * constant nhanh hơn nhiều.
Lưu ý rằng các số dương rất gần 1 có thể bị mất độ chính xác và làm logarithm tự nhiên kém chính xác hơn. Trong trường hợp này, bạn nên dùng Math.log1p thay thế.
Ví dụ
>Sử dụng Math.log()
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
Sử dụng Math.log() với cơ số khác
Hàm sau trả về logarithm của y theo cơ số x (tức là ):
function getBaseLog(x, y) {
return Math.log(y) / Math.log(x);
}
Nếu chạy getBaseLog(10, 1000), kết quả là 2.9999999999999996 do làm tròn số thực dấu phẩy động, nhưng vẫn rất gần với đáp án đúng là 3.
Đặc tả kỹ thuật
| Thông số kỹ thuật |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.log> |