Máy tính rất giỏi toán học. Đó là "tiên天生" của chúng, vì máy tính được cung cấp năng lượng bởi các con 1 và 0 mà chúng ta gọi là nhị phân. Khi bạn lập trình, chắc chắn sẽ có lúc bạn muốn thực hiện một số phép toán học.
Trong JavaScript, toán học xuất hiện thường xuyên. Bạn có thể dùng toán học để tính kích thước cửa sổ, kiểm tra xem người dùng có đủ tuổi để sử dụng trang web, hoặc cộng hai số do người dùng cung cấp.
Trong hướng dẫn này, chúng ta sẽ nói về cách thực hiện các phép toán học trong JavaScript bằng năm toán tử chính.
Toán tử toán học: Ôn tập nhanh
JavaScript bao gồm nhiều toán tử. Một số cho phép làm việc với chuỗi, những cái khác giúp thực hiện các hàm toán học JS. Chúng ta sẽ tập trung vào một loại đặc biệt gọi là toán tử số học.
Toán tử số học là các ký hiệu dùng để thực hiện các tác vụ toán học. Các toán tử JS này tương đối giống với những gì bạn học ở trường. Bài viết này tập trung vào sáu toán tử:
- Cộng (+)
- Trừ (-)
- Chia (/)
- Nhân (*)
- Modulo (%)
- Lũy thừa (**)
Hãy bắt đầu và đi sâu vào từng toán tử.
Trước khi bắt đầu, lưu ý rằng tất cả các số JavaScript đều được lưu trữ dưới dạng số. Không có kiểu dữ liệu riêng cho số thực (số thập phân) hoặc số nguyên. Chúng ta đơn giản gọi tất cả là "số".
Cộng và Trừ
Các ký hiệu JavaScript để cộng và trừ số JS giống với những gì chúng ta dùng trong đời sống hàng ngày cho toán học. Rất thuận tiện! Chúng ta có thể cộng các số bằng cách nêu các số cần cộng, cách nhau bằng dấu cộng:
console.log(5 + 9);
Mã trả về: 14. Chúng ta có thể thực hiện phép trừ bằng cách thay dấu cộng bằng dấu trừ:
console.log(5 - 9);
Mã trả về: -4.
Toán học JavaScript có thể làm việc với cả số dương và âm.
Khi làm việc với phép toán, bạn có thể không chỉ in ra console. Đó là lúc biến xuất hiện. Bạn có thể gán các số trong bài toán toán học vào biến để lưu trữ tất cả các số bạn đang làm việc:
var a = 10; var b = 20; var c = a + b; console.log(c);
Mã trả về: 30. Chúng ta gán giá trị 10 cho a và 20 cho b. Sau đó, dùng biến c để cộng hai số này. Rất đơn giản!
Nhân và Chia
Hãy nói về nhân và chia. Khác với ví dụ trước, chúng ta phải học hai toán tử mới:
- Dấu hoa thị (*) đại diện cho nhân.
- Dấu gạch chéo (/) đại diện cho chia.
Giả sử chúng ta sở hữu tiệm bánh quy và muốn tính cần bao nhiêu kg bột mì. Mỗi lô bánh quy cần 2kg bột, và chúng ta muốn nướng năm lô. Chúng ta có thể tính kg bột cần thiết bằng mã này:
var batches = 5; var flourQuantity = 2; var flourNeeded = batches * flourQuantity; console.log("Bạn cần ", flourNeeded, "kg bột mì.");
Mã trả về: Bạn cần 10kg bột mì.
Bạn có thể dùng dấu gạch chéo để thực hiện phép chia.
Giả sử mỗi lô chứa 40 bánh quy và bạn muốn chia thành gói. Mỗi gói chứa 5 bánh quy. Bây giờ, bạn muốn biết có thể làm bao nhiêu gói. Điều này có thể làm bằng mã sau:
var batchQuantity = 40; var pack = 5; var packsMade = batchQuantity / pack; console.log("Bạn có thể làm ", packsMade, "gói bánh quy.");
Mã trả về: Bạn có thể làm 8 gói bánh quy.
Modulo
Toán tử modulo có thể không phổ biến như các toán tử khác nhưng vẫn là phần quan trọng của JavaScript. Toán tử modulo tính phần dư của một số sau khi nó được chia.
Trong JavaScript, phép modulo được biểu diễn bằng dấu phần trăm. Ví dụ trước cho thấy chia các số chia hết. Như bạn biết, không phải bài toán nào cũng như vậy; một số trả về phần dư.
Quay lại ví dụ bánh quy. Giả sử chúng ta ước lượng sai số bánh quy mỗi lô. Thực tế mỗi lô chỉ cho 37 bánh quy. Để biết bao nhiêu gói có thể làm từ lô đó, chúng ta dùng mã này:
var batchQuantity = 37; var pack = 5; var packsMade = batchQuantity / pack; console.log("Bạn có thể làm ", packsMade, "gói bánh quy.");
Vấn đề là chúng ta có số thập phân! Đó là lúc modulo xuất hiện. Chúng ta cập nhật mã để tính phần dư bánh quy còn lại:
var batchQuantity = 37; var pack = 5; var packsMade = batchQuantity / pack; console.log("Bạn có thể làm ", Math.floor(packsMade), "gói bánh quy."); var remainder = batchQuantity % pack; console.log("Bạn sẽ còn ", remainder, " bánh quy dư.");
Mã trả về:
Bạn có thể làm 7 gói bánh quy. Bạn sẽ còn 2 bánh quy dư.
Chúng ta đã sửa đổi mã. Đầu tiên, làm tròn giá trị packsMade xuống số nguyên gần nhất. Dùng Math.floor() cho mục đích này. Điều này cho thấy chúng ta có thể làm 7 gói đầy đủ. Sau đó dùng toán tử modulo để tính bánh quy dư. Cho biết sau khi chia gói, còn lại hai bánh quy.
Lũy thừa
Nâng x lên lũy thừa y. Nghe có vẻ phức tạp, đặc biệt khi dùng từ như lũy thừa. Nhưng không cần khó khăn.
Trong JavaScript, hai dấu hoa thị (**) đại diện cho việc nâng một số lên lũy thừa:
console.log(7 ** 3);
Mã trả về: 343.
Đây là cách viết khác của 7 * 7 * 7, nhưng ngắn gọn và dễ đọc hơn.
Thứ tự thực hiện phép toán
Toán học có thứ tự thực hiện phép toán cụ thể. Mô tả phép toán nào nên thực hiện trước khi gặp bài toán.
Cách phổ biến để nhớ thứ tự này là BODMAS:
- Brackets (Ngoặc)
- Order (Lũy thừa)
- Division (Chia)
- Multiplication (Nhân)
- Addition (Cộng)
- Subtraction (Trừ)
Điều này cho biết chúng ta nên làm mọi thứ trong ngoặc trước, sau đó các phép lũy thừa, rồi chia, v.v. Xét bài toán sau:
var problem = (5 * 3) + 2; console.log(problem);
Đáp án là: 17. JavaScript trước tiên tính 5 * 3 vì nó trong ngoặc. Sau đó cộng 2 vào kết quả phép tính đó.
Kết luận
JavaScript cung cấp nhiều toán tử số học để thực hiện các phép toán học. Một số toán tử, như cộng, giống với những gì chúng ta dùng khi giải bài toán; những cái khác có ký hiệu riêng.
Nhớ rằng khi đánh giá bài toán toán học, bạn cần xem xét BODMAS, thứ tự thực hiện phép toán.
Bây giờ bạn đã sẵn sàng làm toán trong JavaScript như một chuyên gia!