Phương thức tĩnh Number.isNaN() trong JavaScript
Bùi Tấn Lực
- 966
- 07/09/2025
Chức năng của Phương thức tĩnh Number.isNaN() trong JavaScript
Phương thức tĩnh Number.isNaN() trong JavaScript dùng để kiểm tra giá trị truyền vào có phải là kiểu dữ liệu Number và có giá trị NaN hay không, nếu phải thì trả về true, nếu không phải thì trả về false.
Number.isNaN(giatri);
giatri: Giá trị truyền vào là kiểu dữ liệu Number và có giá trị NaN thì trả về true, ngược lại trả về false.
Code Phương thức tĩnh Number.isNaN() trong JavaScript
Number.isNaN(NaN);
<script>
document.write(Number.isNaN(NaN)+"<br>"); // Kết quả: true (Nó là NaN và là kiểu Number)
document.write(Number.isNaN(Number("abc"))+"<br>"); // Kết quả: true (là kiểu Number, và trả về NaN)
document.write(Number.isNaN(-35)+"<br>"); // Kết quả: false (Kiểu Number nhưng không phải NaN)
document.write(Number.isNaN(0)+"<br>"); // Kết quả: false (Kiểu Number nhưng không phải NaN)
document.write(Number.isNaN("35")+"<br>"); // Kết quả: false (Kiểu Number nhưng không phải NaN)
document.write(Number.isNaN(null)+"<br>"); // Kết quả: false (Không phải kiểu Number cũng không phải NaN)
document.write(Number.isNaN("35abc")+"<br>"); // Kết quả: false (Không phải kiểu Number cũng không phải NaN)
</script>
Kết quả:
true
true
false
false
false
false
false
So sánh Number.isNaN() với các cách kiểm tra NaN trong JavaScript
JavaScript cung cấp nhiều cách để xác định một giá trị có phải NaN hay không, nhưng mỗi cách có quy tắc xử lý kiểu dữ liệu khác nhau. Hiểu rõ sự khác biệt giúp tránh trường hợp một giá trị không phải số vẫn bị xem như NaN do quá trình chuyển đổi kiểu dữ liệu.
Number.isNaN() kiểm tra NaN như thế nào?
Number.isNaN() chỉ trả về true khi giá trị được truyền vào thực sự có kiểu number và giá trị đó là NaN. Phương thức này không tự động chuyển đổi chuỗi, boolean hoặc các kiểu dữ liệu khác thành số trước khi kiểm tra.
Number.isNaN(NaN); // true
Number.isNaN(10); // false
Number.isNaN("NaN"); // false
Number.isNaN("abc"); // false
Number.isNaN(true); // false
Đặc điểm này khiến Number.isNaN() có tính kiểm tra chặt chẽ và dễ dự đoán. Khi cần xác định chính xác một kết quả tính toán có tạo ra NaN hay không, đây thường là lựa chọn phù hợp.
Sự khác nhau giữa Number.isNaN() và isNaN()
Điểm khác biệt quan trọng nằm ở việc isNaN() có thể chuyển đổi giá trị sang kiểu số trước khi thực hiện kiểm tra, trong khi Number.isNaN() không thực hiện bước chuyển đổi này.
isNaN("abc"); // true
Number.isNaN("abc"); // false
isNaN("123"); // false
Number.isNaN("123"); // false
isNaN(undefined); // true
Number.isNaN(undefined); // false
Vì vậy, isNaN() có thể cho kết quả gây bất ngờ nếu dữ liệu đầu vào là chuỗi hoặc kiểu dữ liệu khác số. Ngược lại, Number.isNaN() chỉ tập trung xác định giá trị NaN thực sự nên hạn chế được những trường hợp kiểm tra nhầm.
Khi nào nên sử dụng Number.isNaN() trong JavaScript?
Nên ưu tiên Number.isNaN() khi chương trình cần kiểm tra kết quả có phải NaN sau một phép tính hoặc thao tác xử lý dữ liệu. Phương thức này đặc biệt hữu ích khi dữ liệu có thể đến từ nhiều nguồn và cần tránh việc JavaScript tự động chuyển đổi kiểu.
const result = Number("abc");
if (Number.isNaN(result)) {
console.log("Giá trị không thể chuyển thành số");
}
Nếu mục tiêu là kiểm tra một giá trị có đúng là NaN hay không, Number.isNaN() thường rõ ràng và an toàn hơn isNaN(). Còn khi cần kiểm tra một giá trị sau quá trình chuyển đổi ngầm sang số, cần hiểu rõ quy tắc của isNaN() trước khi sử dụng.
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.isNaN() 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 *