Làm cách nào để tránh NaN trong JavaScript?
Bạn sẽ tìm hiểu về JavaScript NaN trong hướng dẫn này, cách kiểm tra xem một giá trị có phải là NaN hay không và cách xử lý hiệu quả NaN Show
NaN trong Javascript là gì?NaN, trong JavaScript, có thể là nhiều thứ. Trên thực tế, nó có thể là hầu hết mọi thứ, miễn là nó không phải là một con số. Loại của nó về mặt kỹ thuật là "số" (khi được đánh giá bằng "typeof"), mặc dù nó là viết tắt của Not a Number Các giá trị trong NaN JavascriptCác giá trị có thể trở thành NaN thông qua nhiều phương tiện khác nhau, thường liên quan đến các phép tính toán sai (chẳng hạn như 0/0) hoặc do ép buộc kiểu, ngầm định hoặc rõ ràng Một ví dụ phổ biến là khi bạn chạy parseInt trên một chuỗi bắt đầu bằng một ký tự chữ cái. Điều này không dành riêng cho parseInt, vì nó cũng áp dụng khi sử dụng cưỡng chế rõ ràng với Number() hoặc với toán tử “+” đơn nguyên Làm cách nào để kiểm tra NaN trong Javascript?Trước khi chọn phương pháp kiểm tra NaN, bạn không nên kiểm tra NaN như thế nào? NaN là một giá trị kỳ lạ trong JavaScript, vì nó không bằng chính nó khi được so sánh với toán tử đẳng thức lỏng lẻo (==) hoặc đẳng thức nghiêm ngặt (===). NaN là giá trị duy nhất trong toàn bộ ngôn ngữ hoạt động theo cách này liên quan đến so sánh Ví dụ: nếu parseInt(“a”) trả về NaN, thì parseInt(“a”) === NaN sẽ trả về false. Điều này có vẻ lạ, nhưng nó hoàn toàn hợp lý sau khi nghĩ về NaN thực sự là gì NaN không cho bạn biết thứ gì đó là gì, nó cho bạn biết nó không phải là gì Hai chuỗi khác nhau này được chuyển đến parseInt() đều sẽ trả về NaN
Cả hai câu lệnh đều trả về NaN, nhưng chúng có thực sự giống nhau không? Dưới đây là một số ví dụ về so sánh bất bình đẳng nghiêm ngặt, thể hiện sự không nhất quán của NaN
Phương pháp 1. isNaN hoặc Số. làNaNJavaScript có một phương thức tích hợp, được đặt tên thích hợp là “isNaN”, dùng để kiểm tra NaN. Có một chức năng mới hơn được gọi là Số. isNaN, được bao gồm trong thông số ES2015 Sự khác biệt giữa isNaN và Số. isNaN là isNaN buộc đối số thành một loại số. Để tránh những kết quả phức tạp và không mong muốn, người ta thường khuyên nên sử dụng Số mới hơn, mạnh mẽ hơn. isNaN để tránh các tác dụng phụ này Số. isNaN không thực hiện bất kỳ chuyển đổi kiểu bắt buộc nào, do đó, nó chỉ trả về giá trị boolean dựa trên tham số Dưới đây là một ví dụ về sự khác biệt giữa hai phương pháp
isNaN, khi được thông qua không xác định, trả về true vì không xác định trở thành NaN sau khi ép số. Bạn có thể tự kiểm tra điều này bằng cách chạy Number(undefined). Bạn sẽ thấy rằng nó trả về NaN Số. isNaN, mặt khác, trả về false. Điều này là do không có sự ép buộc nào diễn ra và không xác định không phải là NaN, nó chỉ đơn giản là không xác định Cũng cần lưu ý rằng Số. isNaN là một phương thức mới hơn (ES2015) trong JavaScript, vì vậy trình duyệt hỗ trợ Number. isNaN không ổn định như isNaN, đã có từ ES1 (1997) Phương pháp 2. Mục tiêu. Là
Phần kết luậnTrong số các phương pháp kiểm tra NaN đã cho, phổ biến nhất là sử dụng hàm isNaN toàn cầu hoặc Số ES2015. phương thức isNaN. Mặc dù phương pháp #2 hợp lệ nhưng hầu hết mọi người thường sẽ sử dụng isNaN hoặc Number. isNaN, được tạo riêng để kiểm tra NaN Các giá trị giả trong JavaScript là Trong ví dụ này, chúng tôi không kiểm tra rõ ràng xem giá trị có bằng Giá trị có thể là một chuỗi rỗng, Một cách dễ hiểu là giá trị bên phải của toán tử là giá trị dự phòng trong trường hợp giá trị bên trái là sai Chuyển đổi NaN thành 0 bằng Số. làNaNNgoài ra, bạn có thể kiểm tra rõ ràng nếu giá trị là Khai báo biến Các biến được khai báo bằng cách sử dụng Mặc dù cách tiếp cận này dài dòng hơn một chút, nhưng nó vẫn dễ đọc và trực quan Ngoài ra, bạn có thể sử dụng toán tử bậc ba Chuyển đổi NaN thành 0 bằng toán tử ternarySử dụng toán tử bậc ba để chuyển đổi Nếu giá trị bằng Toán tử bậc ba rất giống với câu lệnh Nếu biểu thức bên trái dấu chấm hỏi là true, toán tử trả về giá trị bên trái dấu hai chấm, ngược lại, giá trị bên phải dấu hai chấm được trả về Bạn có thể tưởng tượng rằng giá trị trước dấu hai chấm là khối Lưu ý rằng chúng tôi đã sử dụng Số. phương thức isNaN để kiểm tra xem giá trị có phải là Bạn không nên cố so sánh một cách rõ ràng với Tại sao tôi nhận được NaN trong JavaScript?Trong JavaScript, NaN là viết tắt của Not a Number. Nó đại diện cho một giá trị không phải là số hợp lệ . Nó có thể được sử dụng để kiểm tra xem một số đã nhập là một số hợp lệ hay không phải là một số.
Làm cách nào để xử lý NaN trong JavaScript?Trong bài viết này, chúng tôi sẽ chuyển đổi NaN thành 0. Sử dụng phương thức isNaN() . Phương thức isNan() dùng để kiểm tra số đã cho có phải là NaN hay không. Nếu isNaN() trả về true cho “số” thì nó gán giá trị 0. sử dụng. Nhà điều hành. Nếu “số” là bất kỳ giá trị falsey nào, nó sẽ được gán cho 0.
Làm cách nào để thay thế NaN bằng trống trong JavaScript?Thay thế NaN bằng Chuỗi rỗng bằng cách sử dụng thay thế ()
. Hàm này sẽ thay thế một chuỗi rỗng thay cho giá trị NaN
Làm cách nào để chuyển đổi NaN thành 0 trong JavaScript?Để thay đổi NaN thành 0, sử dụng logic OR (. ) toán tử , như trong const result = val. 0;. Nếu giá trị bên trái là sai, logic OR (. ) toán tử trả về giá trị bên phải. |