Tiếp theo Thế giới JS share về Toán tử % (modulo) trong JavaScript, nó đưa ra phần còn lại thu được bằng cách chia hai số. Có một sự khác biệt giữa %(modulo) và toán tử còn lại. Khi phần dư hoặc %(modulo) được tính trên số dương thì cả hai sẽ hoạt động giống nhau nhưng khi sử dụng số âm thì cả hai hoạt động khác nhau.
JavaScript %(modulo) hoạt động giống như phép toán còn lại và đưa ra số dư và vì số này là số âm nên số dư cũng có giá trị âm.
Ví dụ về Toán tử Modulo:
Đối với các số dương:
Đầu vào: a = 21, b = 4
Đầu ra: 1
Giải thích:
modulo = 21 % 4
modulo = 21 – 4 * 5
modulo = 21 – 20 = 1
Giải thích khác:
Số 21 viết được dưới dạng 4 là
21 = 5 * 4 + 1
Vì vậy, ở đây ‘1’ là kết quả.
Đối với số âm:
Đầu vào: a = -23, b = 4
Đầu ra: 1
Giải thích:
modulo = -23 % 4
modulo = -23 + 4 * 6
modulo = -23 + 24 = 1
Giải thích khác:
Số -23 viết được dưới dạng 4
-23 = (-6) * 4 + 1
Vì vậy, ở đây ‘1’ là kết quả.
Ví dụ về Toán tử phần dư:
Toán tử phần dư sử dụng công thức:
Số dư = a – (a / b) * b
Lưu ý: Kết quả của (a / b) trước tiên được chuyển đổi thành Giá trị số nguyên.
Đối với các số dương:
Đầu vào: a = 21, b = 4
Đầu ra: 1
Giải thích:
Số dư = 21 – (21 / 4) * 4
Số dư = 21 – 5 * 4
Số dư = 21 – 20 = 1
Đối với số âm:
Đầu vào: a = -23, b = 4
Đầu ra: -3
Giải thích:
Số dư = -23 -( -23 / 4) * 4
Số dư = -23 -(-5) * 4
Số dư = -23 + 20 = -3
Vì vậy, từ sự so sánh ở trên, rõ ràng là cả phép toán phần dư và modulo đều khác nhau. Toán tử %(modulo) trong JavaScript khác với toán tử còn lại, đó là lý do tại sao nó cho kết quả âm trên các số âm.
Number.prototype: Hàm tạo nguyên mẫu cho phép thêm các thuộc tính và phương thức mới vào các số JavaScript sao cho tất cả các số đều có thuộc tính này và có thể truy cập phương thức theo mặc định.
Do đó, chúng tôi sẽ sử dụng Number.prototype để tạo một hàm mod sẽ trả về modulo của hai số.
Cú pháp:
Number.prototype.mod = function(a) { // Calculate return this % a; }
Các Chương trình bên dưới minh họa toán tử %(modulo) trong JavaScript:
Ví dụ 1: Ví dụ này sử dụng toán tử modulo (%) để thực hiện thao tác.
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // JavaScript code to perform modulo (%) // operation on positive numbers // mod() function Number.prototype.mod = function(a) { // Calculate return this % a; } // Driver code var x = 21; var b = 4; // Call mod() function var result = x.mod(b); // Print result console.log("The outcome is: " + result);
Đầu ra:
The outcome is: 1
Ví dụ 2:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // JavaScript code to perform modulo (%) // operation on negative numbers // Use mod() function Number.prototype.mod = function(a) { // Calculate return this % a; } // Driver code var x = -21; var b = 4; // Call mod() var result = x.mod(b); // Print result console.log("The outcome is: " + result);
Đầu ra:
The outcome is: -1
Do đó, rõ ràng là tại sao JavaScript %(modulo) cho kết quả âm tính.
Thực hiện các thay đổi trong JavaScript %(modulo) để hoạt động như một toán tử mod: Để thực hiện toán tử modulo (%) giống như modulo thực tế hơn là tính toán phần còn lại. Chúng ta sẽ sử dụng công thức sau.
Giả sử các số là a và b rồi tính mod = a % b
Cú pháp:
Number.prototype.mod = function(b) { // Calculate return ((this % b) + b) % b; }
Trong công thức trên, chúng tôi đang tính modulo từ phần còn lại bằng cách sử dụng thuộc tính modulo (a + b) mod c = (a mod c + b mod c) mod c .
Chương trình dưới đây minh họa cách tiếp cận trên:
Thí dụ:
// https://vpsus.vn/ // https://www.facebook.com/groups/893052378563701 // https://twitter.com/thegioijs // JavaScript implementation of above approach // Use mod() function Number.prototype.mod = function(b) { // Calculate return ((this % b) + b) % b; } // Driver code var x = -21; var b = 4; // Call mod() function var result = x.mod(b); // Print result console.log("The outcome is: " + result); x = -33; b = 5; // Call mod() function result = x.mod(b); // Print result console.log("The outcome is: " + result);
Đầu ra:
The outcome is: 3 The outcome is: 2
Trên đây là tất cả những gì về Toán tử modulo(%) trong javascript mà bạn cần biết. Nếu bạn có bất kỳ câu hỏi liên quan tới Toán tử modulo(%), hãy chủ động liên hệ và inbox cho chúng tôi, để giúp đỡ bạn sớm nhất
Tiếp theo, hãy cùng Thế giới JS tìm hiểu thêm các kiến thức về Javascript trong các bài tiếp theo trong series học miễn phí Javascript từ cơ bản tới nâng cao.
Nếu bạn cảm thấy hữu ích và yêu thích Thế giới JS, hãy tham gia và theo dõi chúng tôi để nhận thêm nhiều kiến thức MIỄN PHÍ hơn nữa nhé:
Share to learn more than!