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ể:

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

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

js
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ả

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()

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

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à logxy\log_x y):

js
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

Specification
ECMAScript® 2027 Language Specification
# sec-math.log

Tương thích trình duyệt

Xem thêm