Math

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.

* Some parts of this feature may have varying levels of support.

Đối tượng namespace Math chứa các thuộc tính và phương thức tĩnh dành cho các hằng số và hàm toán học.

Math hoạt động với kiểu Number. Nó không hoạt động với BigInt.

Mô tả

Khác với hầu hết các đối tượng toàn cục, Math không phải là một constructor. Bạn không thể sử dụng nó với toán tử new hoặc gọi đối tượng Math như một hàm. Tất cả các thuộc tính và phương thức của Math đều là tĩnh.

Note: Nhiều hàm Math có độ chính xác phụ thuộc vào triển khai.

Điều này có nghĩa là các trình duyệt khác nhau có thể cho kết quả khác nhau. Thậm chí cùng một JavaScript engine trên hệ điều hành hoặc kiến trúc khác nhau cũng có thể cho kết quả khác nhau!

Thuộc tính tĩnh

Math.E

Số Euler và cơ số của logarithm tự nhiên; xấp xỉ 2.718.

Math.LN10

Logarithm tự nhiên của 10; xấp xỉ 2.303.

Math.LN2

Logarithm tự nhiên của 2; xấp xỉ 0.693.

Math.LOG10E

Logarithm cơ số 10 của E; xấp xỉ 0.434.

Math.LOG2E

Logarithm cơ số 2 của E; xấp xỉ 1.443.

Math.PI

Tỉ số chu vi của một đường tròn so với đường kính của nó; xấp xỉ 3.14159.

Math.SQRT1_2

Căn bậc hai của ½; xấp xỉ 0.707.

Math.SQRT2

Căn bậc hai của 2; xấp xỉ 1.414.

Math[Symbol.toStringTag]

Giá trị khởi tạo của thuộc tính [Symbol.toStringTag] là chuỗi "Math". Thuộc tính này được sử dụng trong Object.prototype.toString().

Phương thức tĩnh

Math.abs()

Trả về giá trị tuyệt đối của đầu vào.

Math.acos()

Trả về arccosine của đầu vào.

Math.acosh()

Trả về arccosine hyperbolic của đầu vào.

Math.asin()

Trả về arcsine của đầu vào.

Math.asinh()

Trả về arcsine hyperbolic của một số.

Math.atan()

Trả về arctangent của đầu vào.

Math.atan2()

Trả về arctangent của thương của các đối số.

Math.atanh()

Trả về arctangent hyperbolic của đầu vào.

Math.cbrt()

Trả về căn bậc ba của đầu vào.

Math.ceil()

Trả về số nguyên nhỏ nhất lớn hơn hoặc bằng đầu vào.

Math.clz32()

Trả về số bit zero đứng đầu của đầu vào số nguyên 32-bit.

Math.cos()

Trả về cosine của đầu vào.

Math.cosh()

Trả về cosine hyperbolic của đầu vào.

Math.exp()

Trả về ex, trong đó x là đối số, và e là số Euler (2.718…, cơ số của logarithm tự nhiên).

Math.expm1()

Trả về kết quả của exp(x) trừ đi 1.

Math.floor()

Trả về số nguyên lớn nhất nhỏ hơn hoặc bằng đầu vào.

Math.f16round()

Trả về biểu diễn số thực độ chính xác một nửa (half precision) gần nhất của đầu vào.

Math.fround()

Trả về biểu diễn số thực độ chính xác đơn (single precision) gần nhất của đầu vào.

Math.hypot()

Trả về căn bậc hai của tổng bình phương các đối số.

Math.imul()

Trả về kết quả của phép nhân số nguyên 32-bit của các đầu vào.

Math.log()

Trả về logarithm tự nhiên (㏒e; hay còn gọi là ㏑) của đầu vào.

Math.log10()

Trả về logarithm cơ số 10 của đầu vào.

Math.log1p()

Trả về logarithm tự nhiên (㏒e; hay còn gọi là ㏑) của 1 + x với số x.

Math.log2()

Trả về logarithm cơ số 2 của đầu vào.

Math.max()

Trả về số lớn nhất trong số không hoặc nhiều số.

Math.min()

Trả về số nhỏ nhất trong số không hoặc nhiều số.

Math.pow()

Trả về cơ số x lũy thừa y (tức là xy).

Math.random()

Trả về một số giả ngẫu nhiên trong khoảng từ 0 đến 1.

Math.round()

Trả về giá trị của đầu vào được làm tròn đến số nguyên gần nhất.

Math.sign()

Trả về dấu của đầu vào, cho biết nó là dương, âm hay bằng không.

Math.sin()

Trả về sine của đầu vào.

Math.sinh()

Trả về sine hyperbolic của đầu vào.

Math.sqrt()

Trả về căn bậc hai dương của đầu vào.

Math.sumPrecise()

Trả về tổng của một iterable các số được truyền vào, tránh mất độ chính xác dấu phẩy động trong các kết quả trung gian.

Math.tan()

Trả về tangent của đầu vào.

Math.tanh()

Trả về tangent hyperbolic của đầu vào.

Math.trunc()

Trả về phần nguyên của đầu vào, loại bỏ bất kỳ chữ số thập phân nào.

Ví dụ

Chuyển đổi giữa độ và radian

Các hàm lượng giác sin(), cos(), tan(), asin(), acos(), atan(), và atan2() nhận (và trả về) các góc tính bằng radian.

Vì con người thường nghĩ theo độ, và một số hàm (chẳng hạn như CSS transforms) có thể chấp nhận độ, nên việc có sẵn các hàm chuyển đổi giữa hai đơn vị là một ý hay:

js
function degToRad(degrees) {
  return degrees * (Math.PI / 180);
}

function radToDeg(rad) {
  return rad / (Math.PI / 180);
}

Tính chiều cao của một tam giác đều

Nếu chúng ta muốn tính chiều cao của một tam giác đều và biết độ dài cạnh của nó là 100, chúng ta có thể sử dụng công thức độ dài cạnh kề nhân với tang của góc bằng cạnh đối diện.

Một tam giác đều trong đó đường vuông góc từ một đỉnh xuống cạnh đối diện tạo thành một tam giác vuông với ba cạnh được đánh dấu là "adjacent" (cạnh kề), "opposite" (cạnh đối) và "hypotenuse" (cạnh huyền). Góc giữa cạnh "adjacent" và "hypotenuse" là 60 độ.

Trong JavaScript, chúng ta có thể làm điều này như sau:

js
50 * Math.tan(degToRad(60));

Chúng ta sử dụng hàm degToRad() để chuyển đổi 60 độ thành radian, vì Math.tan() nhận giá trị đầu vào tính bằng radian.

Trả về một số nguyên ngẫu nhiên trong khoảng hai giới hạn

Điều này có thể được thực hiện bằng cách kết hợp Math.random()Math.floor():

js
function random(min, max) {
  const num = Math.floor(Math.random() * (max - min + 1)) + min;
  return num;
}

random(1, 10);

Thông số kỹ thuật

Specification
ECMAScript® 2027 Language Specification
# sec-math-object

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

Xem thêm