Phương thức tĩnh Number.isInteger() trong JavaScript
Bùi Tấn Lực
- 1009
- 07/09/2025
Chức năng của Phương thức tĩnh Number.isInteger() trong JavaScript
Phương thức tĩnh Number.isInteger() trong JavaScript dùng để kiểm tra giá trị truyền vào có phải là một số nguyên hay không, nếu phải là số nguyên thì trả về true, không phải thì trả về false.
Cú pháp của Phương thức tĩnh Number.isInteger() trong JavaScript
Number.isInteger(giatri);
giatri: Giá trị truyền vào nếu là số nguyên thì trả về true, ngược lại trả về false (Ví dụ: 0, 35, -35,......)
Code Phương thức tĩnh Number.isInteger() trong JavaScript
Number.isInteger(35);
<script>
document.write(Number.isInteger(35)+"<br>"); // Kết quả: true
document.write(Number.isInteger(-35)+"<br>"); // Kết quả: true
document.write(Number.isInteger(0)+"<br>"); // Kết quả: true
document.write(Number.isInteger(35.6)+"<br>"); // Kết quả: false
document.write(Number.isInteger("35")+"<br>"); // Kết quả: false (kiểu chuỗi không phải số nguyên)
document.write(Number.isInteger(null)+"<br>"); // Kết quả: false (null không phải số nguyên)
document.write(Number.isInteger("35abc")+"<br>"); // Kết quả: false (kiểu chuỗi không phải số nguyên)
document.write(Number.isInteger("abc")+"<br>"); // Kết quả: false (kiểu chuỗi không phải số nguyên)
</script>
Kết quả:
true
true
true
false
false
false
false
So sánh Number.isInteger() với các cách kiểm tra số nguyên khác trong JavaScript
Trong JavaScript, có nhiều cách xác định một giá trị có phải số nguyên hay không. Tuy nhiên, mỗi phương pháp có cách xử lý kiểu dữ liệu và phạm vi kiểm tra khác nhau. Number.isInteger() thường là lựa chọn rõ ràng nhất khi chỉ cần xác định một giá trị có phải số nguyên hay không.
Number.isInteger() khác gì với Number.isSafeInteger()?
Number.isInteger() kiểm tra xem giá trị có phải là số nguyên hay không, trong khi Number.isSafeInteger() kiểm tra thêm điều kiện số đó phải nằm trong phạm vi số nguyên an toàn mà JavaScript có thể biểu diễn chính xác.
console.log(Number.isInteger(100000000000000000000)); // true
console.log(Number.isSafeInteger(100000000000000000000)); // false
console.log(Number.isInteger(100)); // true
console.log(Number.isSafeInteger(100)); // true
Vì vậy, nếu chỉ quan tâm đến việc một giá trị có phần thập phân hay không, Number.isInteger() là phù hợp. Khi dữ liệu được dùng cho các phép tính yêu cầu độ chính xác của số nguyên, nên cân nhắc Number.isSafeInteger().
Number.isInteger() khác gì với phép chia lấy dư (%)?
Phép chia lấy dư % có thể được dùng để kiểm tra một số có chia hết cho 1 hay không, nhưng cách này không trực tiếp thể hiện mục đích kiểm tra kiểu dữ liệu như Number.isInteger().
const value = 25;
console.log(Number.isInteger(value)); // true
console.log(value % 1 === 0); // true
Với cách dùng % 1, cần tự xây dựng điều kiện và chú ý đến kiểu dữ liệu đầu vào. Trong khi đó, Number.isInteger() được thiết kế riêng cho việc kiểm tra số nguyên và không tự chuyển đổi chuỗi thành số.
console.log(Number.isInteger("25")); // false
console.log("25" % 1 === 0); // true
Điều này khiến Number.isInteger() dễ đọc và ít gây nhầm lẫn hơn khi xử lý dữ liệu có thể chứa nhiều kiểu giá trị khác nhau.
Khi nào nên sử dụng Number.isInteger() trong JavaScript?
Nên sử dụng Number.isInteger() khi cần kiểm tra trực tiếp một giá trị có phải số nguyên hay không, đặc biệt trong các điều kiện xác thực dữ liệu.
function checkQuantity(quantity) {
if (!Number.isInteger(quantity) || quantity < 1) {
return "Số lượng không hợp lệ";
}
return "Số lượng hợp lệ";
}
console.log(checkQuantity(5)); // Số lượng hợp lệ
console.log(checkQuantity(5.5)); // Số lượng không hợp lệ
console.log(checkQuantity("5")); // Số lượng không hợp lệ
Cách kiểm tra này phù hợp với các giá trị như số lượng sản phẩm, vị trí phần tử, số lần lặp hoặc các tham số bắt buộc phải là số nguyên. Nếu cần giới hạn cả phạm vi giá trị an toàn, có thể kết hợp với Number.isSafeInteger() để kiểm tra chặt chẽ hơn.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Phương thức tĩnh Number.isInteger() trong JavaScript.
- 0 Bình luận
Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *