Phương thức tĩnh Number.isNaN() trong JavaScript

Phương thức tĩnh Number.isNaN() trong JavaScript
Phương thức tĩnh Number.isNaN() trong JavaScript

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

Chạy Thử

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
CEO Bùi Tấn Lực | Founder Web Mới
Bùi Tấn Lực
Tìm hiểu về CEO Bùi Tấn Lực, Founder Web Mới với nhiều năm kinh nghiệm trong lĩnh vực phát triển website, SEO và chia sẻ kiến thức công nghệ
Đánh giá
Chia sẻ nội dung đánh giá của bạn về Phương thức tĩnh Number.isNaN() trong JavaScript
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 *
Đánh giá của bạn
Tên *
Email
Số điện thoại *
Bình luận, Hỏi đáp
Yêu Cầu Báo Giá
Gửi trang web mẫu cần làm theo, chúng tôi sẽ báo giá đến bạn từ Email (tanlucit09@gmail.com - Bùi Tấn Lực) hoặc Zalo (Lực IT - 0398259259) !