Hướng dẫn how do i restrict nan in javascript? - làm cách nào để hạn chế nan trong javascript?

Thay vì kludging nó để bạn có thể tiếp tục, tại sao không sao lưu và tự hỏi tại sao bạn lại chạy vào NAN ngay từ đầu?

Nếu bất kỳ đầu vào số nào cho hoạt động là NAN, đầu ra cũng sẽ là NAN. Đó là cách mà tiêu chuẩn điểm nổi hiện tại của IEEE hoạt động (nó không chỉ là JavaScript). Hành vi đó là vì một lý do chính đáng: ý định cơ bản là để bạn không sử dụng kết quả không có thật mà không nhận ra đó là không có thật.

Cách thức hoạt động của NAN là nếu có điều gì đó không ổn trong một số hoạt động phụ trợ phụ (tạo ra NAN ở cấp độ thấp hơn), kết quả cuối cùng cũng sẽ là NAN, bạn sẽ nhận ra ngay lập tức là một lỗi ngay cả khi Logic xử lý lỗi (ném/bắt có thể?) Vẫn chưa hoàn thành.

Nan là kết quả của một phép tính số học luôn cho thấy một cái gì đó đã trở nên tồi tệ trong các chi tiết của số học. Đó là một cách để máy tính nói "gỡ lỗi cần thiết ở đây". Thay vì tìm cách nào đó để tiếp tục với một số số mà hầu như không đúng (là 0 thực sự là những gì bạn muốn?), Tại sao không tìm thấy vấn đề và khắc phục nó.

Một vấn đề phổ biến trong JavaScript là cả parseInt(...)parseFloat(...) sẽ trả lại NAN nếu đưa ra một đối số vô nghĩa (

const y = 5 * "Apples"; // NaN

isNaN("5") || 0
0,
const y = 5 * "Apples"; // NaN

isNaN("5") || 0
1, v.v.). Khắc phục sự cố ở cấp độ thấp nhất có thể thay vì ở cấp độ cao hơn. Sau đó, kết quả của tính toán tổng thể có cơ hội tốt để có ý nghĩa và bạn không thay thế một số số ma thuật (0 hoặc 1 hoặc bất cứ điều gì) cho kết quả của toàn bộ tính toán. (Thủ thuật của (parseInt (foo.value) |

Có lẽ để dễ dàng mã hóa, bạn muốn có một hàm để lấy giá trị từ người dùng, làm sạch nó và cung cấp giá trị mặc định nếu cần thiết, như thế này:

function getFoobarFromUser(elementid) {
        var foobar = parseFloat(document.getElementById(elementid).innerHTML)
        if (isNaN(foobar)) foobar = 3.21;       // default value
        return(foobar.toFixed(2));
}

JavaScript NAN là giá trị trả về từ các hoạt động có kết quả số không xác định. NAN là một giá trị lỗi có nghĩa là không phải là một số. Dưới đây là 4 phương pháp với các ví dụ để tránh NAN trong JavaScript.

Mã ví dụ đơn giản.

1. Hoạt động toán học với các giá trị chuỗi không phải là số

Đôi khi các giá trị được chuỗi có thể quay lại từ API, chỉ cần kiểm tra xem giá trị là

const y = 5 * "Apples"; // NaN

isNaN("5") || 0
2 ngay từ đầu.

const y = 5 * "Apples"; // NaN

isNaN("5") || 0

Để tránh nó hoàn toàn, nó tốt nhất nếu bạn thực hiện tất cả các hoạt động toán học của mình với các số.

2. Hoạt động toán học với các chức năng

Thực hiện các hoạt động toán học với một hàm sẽ dẫn đến giá trị

const y = 5 * "Apples"; // NaN

isNaN("5") || 0
2.

function fooBar() {
  // ...stuff
}
fooBar * 5 // NaN

3. Hoạt động toán học với các đối tượng

Thực hiện các hoạt động toán học với một đối tượng JavaScript sẽ dẫn đến giá trị

const y = 5 * "Apples"; // NaN

isNaN("5") || 0
2.


const obj = {};

obj * 5 // NaN

4. Các hoạt động toán học với các giá trị giả tưởng

Tránh thực hiện các hoạt động toán học với các giá trị giả mạo như:

  • const y = 5 * "Apples"; // NaN
    
    isNaN("5") || 0
    
    5
  • const y = 5 * "Apples"; // NaN
    
    isNaN("5") || 0
    
    2
  • const y = 5 * "Apples"; // NaN
    
    isNaN("5") || 0
    
    0
  • const y = 5 * "Apples"; // NaN
    
    isNaN("5") || 0
    
    8
  • Chuỗi trống (
    const y = 5 * "Apples"; // NaN
    
    isNaN("5") || 0
    
    9)
<!DOCTYPE html>
<html>
<body>

  <script>

    const a = undefined + 5; // NaN

    const b = NaN / 5; // NaN

    const c = null - 5; // -5. Null behaves like a 0.

    const d = false * 5; // -5. False behaves like a 0.

    const e = "" + 10; // 10. Empty string behaves like a 0.

    console.log(a,b,c,d,e)

  </script>

</body>
</html> 

Output::

Hướng dẫn how do i restrict nan in javascript? - làm cách nào để hạn chế nan trong javascript?

Trả về 0 nếu giá trị đầu vào là nan

Cách ngắn nhất:

var number = (yourVariable || 0)

const y = 5 * "Apples"; // NaN

isNaN("5") || 0
2 là một giá trị giả, điều này sẽ trả về 0 bất cứ khi nào
function fooBar() {
  // ...stuff
}
fooBar * 5 // NaN
1 là NAN.

Một cách để kiểm tra, nếu một số là NAN hoặc không sử dụng hàm

function fooBar() {
  // ...stuff
}
fooBar * 5 // NaN
2.

isNaN(yourVariable); // Returns true is yourVariable is NaN

Làm cách nào để ngăn đầu ra của tôi là NAN?

Trả lời: Chỉ cần đặt một biến thành ParseInt (Mạnh) và kiểm tra để đảm bảo rằng đó là một số sử dụng

function fooBar() {
  // ...stuff
}
fooBar * 5 // NaN
3.: Just set a variable to parseInt(…) and check to make sure that it is a number using
function fooBar() {
  // ...stuff
}
fooBar * 5 // NaN
3.

let val = parseInt(Value);
    if (!isNaN(val))
      //CODE
  }

Hãy bình luận nếu bạn có bất kỳ nghi ngờ hoặc đề xuất nào về chủ đề JS NAN này.

Lưu ý: & nbsp; The & nbsp; tất cả các ví dụ JS & nbsp; is & nbsp; được kiểm tra trên trình duyệt firefox và trình duyệt Chrome. The All JS Examples codes are tested on the Firefox browser and the Chrome browser.

Hệ điều hành: & nbsp; windows 10Windows 10

Mã: Phiên bản HTML 5

Hướng dẫn how do i restrict nan in javascript? - làm cách nào để hạn chế nan trong javascript?

Bằng cấp về Khoa học máy tính và Kỹ sư: Nhà phát triển ứng dụng và có nhiều ngôn ngữ lập trình kinh nghiệm. Sự nhiệt tình cho công nghệ và thích học kỹ thuật.

Điều gì gây ra Nan JavaScript?

Có năm loại hoạt động khác nhau trả về NAN: chuyển đổi số không thành công (ví dụ: các loại rõ ràng như ParseInt ("blabla"), số (không xác định) hoặc các hoạt động toán học như toán học. Số thực (ví dụ: Toán học.Failed number conversion (e.g. explicit ones like parseInt("blabla") , Number(undefined) , or implicit ones like Math. abs(undefined) ) Math operation where the result is not a real number (e.g. Math.

Tại sao kết quả của tôi là Nan?

NAN, một từ viết tắt của không phải là một số là một ngoại lệ thường xảy ra trong các trường hợp khi một biểu thức dẫn đến một số không được xác định hoặc không thể được biểu diễn.Nó được sử dụng cho các hoạt động nổi.Ví dụ: căn bậc hai của số âm.usually occurs in the cases when an expression results in a number that is undefined or can't be represented. It is used for floating-point operations. For example: The square root of negative numbers.

Nan trong JavaScript là gì?

Trong JavaScript, Nan là viết tắt của "không phải là số".Trong JavaScript, NAN là một con số không phải là một số hợp pháp.Tài sản NAN toàn cầu giống như số.Tài sản nan.

Chúng ta có thể so sánh NAN trong JavaScript không?

Không giống như tất cả các giá trị có thể khác trong JavaScript, không thể sử dụng các toán tử bình đẳng (== và ===) để so sánh giá trị với NAN để xác định xem giá trị có phải là NAN hay không, bởi vì cả NAN == NAN và NAN = NAN === NAN đánh giá sai.Hàm isnan () cung cấp kiểm tra bình đẳng thuận tiện đối với NAN.it is not possible to use the equality operators (== and ===) to compare a value against NaN to determine whether the value is NaN or not, because both NaN == NaN and NaN === NaN evaluate to false . The isNaN() function provides a convenient equality check against NaN .