Phương thức tĩnh Number.isSafeInteger() trong JavaScript
Bùi Tấn Lực
- 902
- 08/09/2025
Chức năng của Phương thức tĩnh Number.isSafeInteger() trong JavaScript
Phương thức tĩnh Number.isSafeInteger() trong JavaScript dùng để kiểm tra giá trị truyền vào có phải là số nguyên an toàn hay không, số nguyên phải nằm trong khoảng -9007199254740991 đến 9007199254740991 thì mới được cho là an toàn.
Cú pháp của Phương thức tĩnh Number.isSafeInteger() trong JavaScript
Number.isSafeInteger(giatri);
giatri: Giá trị truyền vào phải là số nguyên và nằm trong khoảng -9007199254740991 đến 9007199254740991 thì được cho là số nguyên an toàn, nếu số nguyên không nằm trong khoảng này thì không phải là số nguyên an toàn.
Code Phương thức tĩnh Number.isSafeInteger() trong JavaScript
Number.isSafeInteger(35);
<script>
document.write(Number.isSafeInteger(35)+"<br>"); // Kết quả: true
document.write(Number.isSafeInteger(9007199254740991)+"<br>"); // Kết quả: true
document.write(Number.isSafeInteger(9007199254740990)+"<br>"); // Kết quả: true
document.write(Number.isSafeInteger(9007199254740992)+"<br>"); // Kết quả: false
document.write(Number.isSafeInteger(-9007199254740991 )+"<br>"); // Kết quả: true
document.write(Number.isSafeInteger(-9007199254740990 )+"<br>"); // Kết quả: true
document.write(Number.isSafeInteger(-9007199254740992 )+"<br>"); // Kết quả: false
document.write(Number.isSafeInteger("abc" )+"<br>"); // Kết quả: false
document.write(Number.isSafeInteger("123" )+"<br>"); // Kết quả: false
</script>
Kết quả:
true
true
true
false
true
true
false
false
false
Khi nào nên sử dụng Number.isSafeInteger() trong JavaScript?
Number.isSafeInteger() phù hợp khi chương trình cần xác nhận một giá trị vừa là số nguyên, vừa nằm trong phạm vi mà JavaScript có thể biểu diễn chính xác. Điều này đặc biệt hữu ích khi xử lý dữ liệu có giới hạn rõ ràng như mã số, số lượng, chỉ số hoặc các giá trị nguyên được truyền giữa ứng dụng và máy chủ.
Kiểm tra số nguyên trước khi thực hiện phép tính
Trước những phép tính yêu cầu dữ liệu nguyên và chính xác, có thể dùng Number.isSafeInteger() để loại bỏ các giá trị không phù hợp. Phương thức này giúp phát hiện cả số thập phân, chuỗi, giá trị quá lớn hoặc quá nhỏ so với phạm vi số nguyên an toàn.
const quantity = 250;
if (Number.isSafeInteger(quantity)) {
console.log("Giá trị hợp lệ để tính toán");
}
Cách kiểm tra này giúp hạn chế lỗi khi dữ liệu đầu vào không đúng kiểu hoặc vượt quá khả năng biểu diễn chính xác của kiểu Number. Tuy nhiên, nếu phép tính cần xử lý các số nguyên lớn hơn giới hạn an toàn, nên cân nhắc sử dụng BigInt thay vì chỉ kiểm tra bằng phương thức này.
Phân biệt Number.isSafeInteger() với Number.isInteger()
Hai phương thức đều kiểm tra một giá trị có phải số nguyên hay không, nhưng mức độ kiểm tra khác nhau. Number.isInteger() chỉ quan tâm giá trị có thuộc dạng số nguyên, trong khi Number.isSafeInteger() còn yêu cầu số đó nằm trong phạm vi số nguyên an toàn.
const value = 9007199254740992;
console.log(Number.isInteger(value)); // true
console.log(Number.isSafeInteger(value)); // false
Vì vậy, khi chỉ cần xác định một giá trị có phải số nguyên, Number.isInteger() là lựa chọn phù hợp. Khi độ chính xác của số nguyên có ý nghĩa đối với kết quả xử lý, Number.isSafeInteger() sẽ phù hợp hơn.
Kiểm tra giới hạn số nguyên an toàn trong JavaScript
JavaScript xác định phạm vi số nguyên an toàn từ Number.MIN_SAFE_INTEGER đến Number.MAX_SAFE_INTEGER. Đây là khoảng giá trị mà các số nguyên có thể được biểu diễn và so sánh chính xác bằng kiểu Number.
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER)); // true
console.log(Number.isSafeInteger(Number.MAX_SAFE_INTEGER + 1)); // false
Khi dữ liệu có khả năng tiến sát hoặc vượt qua giới hạn này, nên kiểm tra bằng Number.isSafeInteger() trước khi thực hiện các thao tác phụ thuộc vào độ chính xác tuyệt đối. Đây là cách đơn giản để phát hiện sớm những giá trị có nguy cơ gây sai lệch trong quá trình xử lý.
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.isSafeInteger() 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 *