Kiến thức lập trình

Math trong JavaScript

  • Tác giả NIIT - ICT HANOI

  • Ngày đăng 19/ 09/ 2020

  • Bình luận 0 Bình luận

Trong hướng dẫn này, bạn sẽ học cách thực hiện các phép toán trong JavaScript thông qua đối tượng Math.

 

Đối tượng Math trong JavaScript là một đối tượng được tích hợp sẵn (buit-in object).

 

Đối tượng Math trong JavaScript

Đối tượng Math trong JavaScript

 

Nó cung cấp một số thuộc tính và phương thức hữu ích để thực hiện các nhiệm vụ toán học như tạo số ngẫu nhiên, làm tròn số, số PI và thực hiện phép tính khác, v.v.

 

Nó cũng bao gồm các phương thức để thực hiện nhiệm vụ toán học thường không thể hoặc quá phức tạp để tính bằng các toán tử toán học tiêu chuẩn (+, -, * và /) chẳng hạn như tính toán các giá trị sin, cos,...

 

1. Thuộc tính Math.PI

 

Thuộc tính Math.PI đại diện cho tỷ lệ giữa chu vi hình tròn và đường kính của nó. PI (π) là một hằng số toán học, xấp xỉ 3,14159

 

Math.PI = π ≈ 3,14159

 

Đây là một ví dụ tính diện tích hình tròn bằng thuộc tính Math.PI.

 

// In ra giá trị của PI
document.write(Math.PI);  // Kết quả: 3.141592653589793
 
// Hàm tính chu vì hình tròn
function tinhChuViHinhTron(banKinh){
    var chuViHinhTron = (Math.PI) * banKinh * banKinh;
    return chuViHinhTron;
}
 
document.write(tinhChuViHinhTron(5));  // Kết quả: 78.53981633974483
document.write(tinhChuViHinhTron(10));  // Kết quả: 314.1592653589793

 

Lưu ý: Đối tượng Math là một đối tượng JavaScript được tích hợp sẵn nên các thuộc tính và phương thức của nó có thể được truy cập trực tiếp. Bạn sẽ không bao giờ cần phải tạo đối tượng Math, vì nó được tạo tự động bởi trình thông dịch JavaScript.

 

2. Tính giá trị tuyệt đối abs()

 

Phương thức Math.abs() được sử dụng để tính giá trị tuyệt đối (dương) của một số. Do đó, -1 được trả về là 1, -5 là 5, v.v.

 

Đây là một ví dụ:

 

document.write(Math.abs(-2));  // Kết quả: 2
document.write(Math.abs(2));  // Kết quả: 2
document.write(Math.abs(-7));  // Kết quả: 7
document.write(Math.abs(-9.5));  // Kết quả: 9.5

 

3. Tạo số ngẫu nhiên với random()

 

Phương thức Math.random() được sử dụng để tạo một số ngẫu nhiên trong phạm vi từ 0 đến nhỏ hơn 1 (Không bao gồm 1).

 

Tuy nhiên, nếu bạn muốn một số nguyên ngẫu nhiên từ 0 đến một số nguyên cao hơn 1, bạn có thể sử dụng giải pháp sau:

 

// Tạo một số ngẫu nhiên từ 0 đến nhỏ hơn 1
document.write(Math.random());
 
// Tạo hàm để tạo số ngẫu nhiên từ 0 đến nhỏ hơn max
function taoSoNgauNhien(max) {
    return Math.floor(Math.random() * max);
}

document.write(taoSoNgauNhien(3));  // Kết quả có thể là: 0, 1, 2
document.write(taoSoNgauNhien(1));  // Kết quả là: 0

 

Note #1: Nếu bạn muốn tạo ra một số ngẫu nhiên từ 0 đến 99 thì bạn sẽ cần truyền max = 100 vào hàm trên.

 

Note #2: Math.floor() là phương thức làm tròn thành số nguyên

 

4. Tính căn bậc hai với sqrt()

 

Phương thức Math.sqrt() được sử dụng để tính căn bậc hai của một số.

 

Nếu số âm, NaN được trả về.

 

Đây là một ví dụ:

 

document.write(Math.sqrt(4));  // Kết quả: 2
document.write(Math.sqrt(16));  // Kết quả: 4
document.write(Math.sqrt(0.25));  // Kết quả: 0.5
document.write(Math.sqrt(-9));  // Kết quả: NaN
 
/* Hàm tính cạnh huyền của một tam giác vuông
theo định lý pytago. */
function tinhCanhHuyenCuaTamGiacVuong(a, b) {
    return Math.sqrt((a * a) + (b * b));
}

document.write(tinhCanhHuyenCuaTamGiacVuong(3, 4));  // Kết quả: 5
document.write(tinhCanhHuyenCuaTamGiacVuong(5, 12));  // Kết quả: 13

 

5. Các phương thức làm tròn số

 

Đối tượng Math trong JavaScript cung cấp một số phương thức làm tròn số, mỗi phương thức sẽ có cách làm tròn số riêng.

 

5.1. Phương thức làm tròn lên ceil()

 

Phương thức Math.ceil() trong JavaScript làm tròn một số lên đến số nguyên cao nhất tiếp theo.

 

Ví dụ: 3,5 làm tròn trở thành 4, -6.9 trở thành -6.

 

Đây là một ví dụ:

 

document.write(Math.ceil(3.5));  // Kết quả: 4
document.write(Math.ceil(-6.9));  // Kết quả: -6
document.write(Math.ceil(9.69));  // Kết quả: 10
document.write(Math.ceil(-9.96));  // Kết quả: -9
document.write(Math.ceil(0));  // Kết quả: 0

 

5.2. Phương thức làm tròn xuống floor()

 

Phương thức Math.floor() trong JS làm tròn một số xuống số nguyên thấp nhất tiếp theo.

 

Ví dụ: 3,5 trở thành 3, -6,9 trở thành -7

 

Đây là một ví dụ:

 

document.write(Math.floor(3.5));  // Kết quả: 3
document.write(Math.floor(-6.9));  // Kết quả: -7
document.write(Math.floor(9.69));  // Kết quả: 9
document.write(Math.floor(-9.96));  // Kết quả: -10
document.write(Math.floor(0));  // Kết quả: 0

 

5.3. Phương thức làm tròn lên / xuống theo phần thập phân round()

 

Phương thức Math.round() làm tròn một số lên đến số nguyên gần nhất theo nếu phần thập phân là 0,5 hoặc lớn hơn.

 

Nó sẽ làm tròn xuống đến số nguyên tiếp theo gần nhất nếu phần thập phân nhỏ hơn 0,5

 

Ví dụ: 3,5 trở thành 4, và 3,4 thì làm tròn thành 3

 

Đây là một ví dụ:

 

document.write(Math.round(3.5));  // Kết quả: 4
document.write(Math.round(-6.9));  // Kết quả: -6
document.write(Math.round(3.25));  // Kết quả: 3
document.write(Math.round(3.49));  // Kết quả: 3
document.write(Math.round(0));  // Kết quả: 0

 

6. Tìm giá trị lớn nhất và giá trị nhỏ nhất

 

Phương thức Math.max()Math.min() được sử dụng để tìm xem số nào lớn nhất hoặc nhỏ nhất trong một nhóm số.

 

Đây là một ví dụ:

 

// Ví dụ tìm số lớn nhất
document.write(Math.max(3, 2, 1));  // Kết quả: 3
document.write(Math.max(-3, -2, -1));  // Kết quả: -1

// Ví dụ tìm số nhỏ nhất
document.write(Math.min(3, 2, 1));  // Kết quả: 1
document.write(Math.min(-3, -2, -1));  // Kết quả: -3

 

Hoặc, bạn cũng có thể tìm giá trị lớn nhất hoặc nhỏ nhất trong một mảng hoặc một đối tượng giống mảng bằng cách sử dụng phương thức apply()

 

Cách làm giống như trong ví dụ sau:

 

var numbers = [3, 2, 1];
 
document.write(Math.max.apply(null, numbers));  // Kết quả: 3
document.write(Math.min.apply(null, numbers));  // Kết quả: 1

 

Ngoài ra, có một cách thậm chí còn đơn giản hơn để làm việc này.

 

Trong phiên bản ECMAScript 6 (ES6), bạn có thể làm tương tự bằng cách sử dụng toán tử "3 chấm" spread operator là (...).

 

Cách sử dụng như trong ví dụ dưới đây:

 

var numbers = [1, 3, 2];
 
document.write(Math.max(...numbers));  // Kết quả: 3
document.write(Math.min(...numbers));  // Kết quả: 1

 

7. Tính lũy thừa một số

 

Phương thức Math.pow() được sử dụng để tính lũy thừa một số.

 

Biểu thức Math.pow(x, y) - tương đương với xy về mặt toán học. Nó cho biết cơ số x được nhân với số mũ y bao nhiêu lần.

 

Đây là một ví dụ:

 

document.write(Math.pow(3, 2));  // Kết quả: 9
document.write(Math.pow(0, 1));  // Kết quả: 0
document.write(Math.pow(5, -2));  // Kết quả: 0.04
document.write(Math.pow(16, 0.5));  // Kết quả: 4 (Căn bậc 2 của 4)
document.write(Math.pow(8, 1/3));  // Kết quả: 2 (Căn bậc 3 của 8)

 

Số mũ dương biểu thị phép nhân (52 = 5 x 5 = 25)

Số mũ âm biểu thị phép chia (5-2 = 1/52 = 0,04).

Trong khi đó, số mũ phân số biểu thị phép căn.

 

8. Các phép toán lượng giác

 

Đối tượng Math của JavaScript cũng cung cấp một số phương thức lượng giác như sin(), cos(), tan() để thực hiện các phép toán lượng giác.

 

Các phương thức này hoạt động theo đơn vị radian, vì vậy bạn cần nhân bất kỳ số đo độ nào với π / 180 trước khi sử dụng chúng.

 

Vì pi radian bằng 180 độ: π rad = 180 °. Do đó, π / 2 radian bằng 90 độ, π / 3 radian bằng 60 độ, v.v.

 

Đây là một ví dụ:

 

document.write(Math.sin(0 * Math.PI / 180));  // Kết quả: 0
document.write(Math.sin(90 * Math.PI / 180));  // Kết quả: 1
document.write(Math.cos(0 * Math.PI / 180));  // Kết quả: 1
document.write(Math.cos(180 * Math.PI / 180));  // Kết quả: -1
document.write(Math.tan(0 * Math.PI / 180));  // Kết quả: 0

 

Còn rất nhiều phương thức có sẵn của đối tượng Math mà bạn có thể tìm hiểu thêm ở trên Mozilla.

 

Có lẽ, nếu bạn tạo các trang web tin tức bình thường thì không cần sử dụng nhiều đến các phương thức toán học.

 

Nhưng nếu, ví dụ bạn tạo một trang web hỗ trợ giải toán online chẳng hạn, khi đó đối tượng Math trong JavaScript chắc chắn sẽ rất hữu ích.

 

Tham khảo: HỌC LẬP TRÌNH WEB FULL STACK bài bản từ Front end đến Back end. Học với chuyên gia đến từ doanh nghiệp tuyển dụng. Học tập trung - Nhanh - Đi làm sớm.