--- title: Number.isSafeInteger() slug: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger translation_of: Web/JavaScript/Reference/Global_Objects/Number/isSafeInteger ---
Phương thức Number.isSafeInteger() xác định xem giá trị truyền vào có phải một số nằm trong khoảng của số nguyên an toàn hay không.
Tài nguyên dùng cho bài viết này được lưu trữ trong một kho của GitHub. Nếu bạn muốn đóng góp cho nó, hãy clone lại https://github.com/mdn/interactive-examples và gửi cho chúng tôi một pull request.
Số nguyên an toàn là số nguyên mà
Chẳng hạn, 253 - 1 là một số nguyên an toàn: nó có thể hiển thị chính xác, và không có số nguyên nào có thể làm tròn đến nó với bất cứ chế độ làm tròn theo chuẩn IEEE-754. Ngoài ra, 253 không phải là một số nguyên an toàn: nó có thể được biểu diễn chính xác theo chuẩn IEEE-754, nhưng số nguyên 253 + 1 không thể hiển thị chính xác theo chuẩn IEEE-754 mà thay vào đó được làm tròn về 253 theo kiểu làm tròn về số gần nhất và làm tròn về không. Số nguyên an toàn nằm trong đoạn từ -(253 - 1) đến 253 - 1 (± 9007199254740991hoặc ±9,007,199,254,740,991).
Xử lý giá trị lớn hơn hoặc nhỏ hơn ~9 triệu tỉ với độ chính xác toàn vẹn yêu cầu sử dụng thư viện số học độ chính xác bất kì. Xem What Every Programmer Needs to Know about Floating Point Arithmetic để biết thêm thông tin về cách biểu diễn số thực dấu phẩy động.
Number.isSafeInteger(testValue)
testValue{{jsxref("Boolean")}} cho biết liệu giá trị truyền vào có phải là số nguyên an toàn hay không.
Number.isSafeInteger(3); // true
Number.isSafeInteger(Math.pow(2, 53)); // false
Number.isSafeInteger(Math.pow(2, 53) - 1); // true
Number.isSafeInteger(NaN); // false
Number.isSafeInteger(Infinity); // false
Number.isSafeInteger('3'); // false
Number.isSafeInteger(3.1); // false
Number.isSafeInteger(3.0); // true
Number.isSafeInteger = Number.isSafeInteger || function (value) {
return Number.isInteger(value) && Math.abs(value) <= Number.MAX_SAFE_INTEGER;
};
| Đặc tả | Trạng thái | Ghi chú |
|---|---|---|
| {{SpecName('ES2015', '#sec-number.issafeinteger', 'Number.isSafeInteger')}} | {{Spec2('ES2015')}} | Định nghĩa lần đầu. |
| {{SpecName('ESDraft', '#sec-number.issafeinteger', 'Number.isSafeInteger')}} | {{Spec2('ESDraft')}} |
Bảng trình duyệt hỗ trợ trong trang này được sinh từ cấu trúc dữ liệu. Nếu bạn muốn đóng góp cho khối dữ liệu, hãy xem qua https://github.com/mdn/browser-compat-data và gửi cho chúng tôi pull request.
{{Compat("javascript.builtins.Number.isSafeInteger")}}