Hướng dẫn what if divide by 0 in javascript - điều gì sẽ xảy ra nếu chia cho 0 trong javascript

Hướng dẫn what if divide by 0 in javascript - điều gì sẽ xảy ra nếu chia cho 0 trong javascript
Shubham Singh Kshatriya

Tổng quan

Chia cho 0 được coi là một trường hợp đặc biệt bởi hầu hết các ngôn ngữ lập trình. Bất kỳ số nào không bao giờ có thể được chia cho 0 vì kết quả của nó là không xác định. Ảnh này bao gồm cách JavaScript xử lý một sự phân chia cho biểu thức bằng không. is considered a special case by most programming languages. Any number can never be divided by zero because its result is indeterminate. This shot covers how JavaScript handles a Divide by Zero expression.

Làm thế nào để ngôn ngữ lập trình xử lý nó?

Hầu hết các ngôn ngữ lập trình đều ném exception trong thời gian chạy. Để xử lý ngoại lệ, họ sử dụng một khối thử.try-catch block.

JavaScript xử lý nó như thế nào?

JavaScript hành động khác với các ngôn ngữ lập trình khác. Khi nó gặp bất kỳ sự phân chia nào cho biểu thức bằng không, nó không ném một ngoại lệ.

Bây giờ, câu hỏi có thể đặt ra tại sao JavaScript hoạt động khác nhau và tại sao nó không ném bất kỳ ngoại lệ nào.

Những lý do có thể cho điều này như sau:

  1. JavaScript là một ngôn ngữ được đánh máy động và nó thực hiện type-coercion.
  2. Ném các ngoại lệ trong thời gian chạy là bất tiện cho JavaScript.

Vì vậy, làm thế nào để JavaScript đánh giá các biểu thức này?

Hãy cùng xem điều đó trong ví dụ sau.

Thí dụ

// Declare and initialize a number with 0

const num1 = 0;

// Declare and initialize a number with a positive integer

const num2 = 10;

// Declare and initialize a number with a negative integer

const num3 = -10;

// Divide by zero with a zero

console.log("Divide by zero with a zero:", num1 / 0);

// Divide by zero with a positive integer

console.log("Divide by zero with a positive integer:", num2 / 0);

// Divide by zero with a negative integer

console.log("Divide by zero with a negative integer:", num3 / 0);

Giải trình

  • Dòng 2: Chúng tôi khai báo và khởi tạo một biến num1 với 0.: We declare and initialize a variable num1 with 0.
  • Dòng 5: Chúng tôi khai báo và khởi tạo một biến num2 với giá trị dương.: We declare and initialize a variable num2 with a positive value.
  • Dòng 8: Chúng tôi khai báo và khởi tạo một biến num3 với giá trị âm.: We declare and initialize a variable num3 with a negative value.
  • Dòng 11: Chúng tôi chia biến num1 với 0 và in đầu ra trên bảng điều khiển.: We divide the variable num1 with 0, and print the output on the console.
  • Dòng 14: Chúng tôi chia biến num2 với 0 và in đầu ra trên bảng điều khiển.: We divide the variable num2 with 0, and print the output on the console.
  • Dòng 17: Chúng tôi chia biến num3 với 0 và in đầu ra trên bảng điều khiển.: We divide the variable num3 with 0, and print the output on the console.

Đầu ra

Đầu ra của mã trong JavaScript như sau:

  • Chia số 0 cho 0 trả về nan.0 returns NaN.
  • Chia số dương cho 0 trả về vô cùng.Infinity.
  • Chia số âm cho 0 trả về -Infinity.-Infinity.

THẺ LIÊN QUAN

JavaScript

chia cho số không

JS

cộng đồng

Người đóng góp

Shubham Singh Kshatriya

Cách tốt nhất là theo ngữ cảnh. Nhưng đây là cách dễ nhất:

function myFunction( input ){
    input = 0 ? 0.0001 : input; // same as if( input == 0 ){ input = 0.0001; }
    return 1 / input;
}

Về cơ bản nếu đầu vào bằng không, hãy biến nó thành một số rất nhỏ trước khi sử dụng làm mẫu số. Hoạt động tuyệt vời cho các số nguyên, vì sau khi bộ phận của bạn, bạn có thể làm tròn chúng trở lại.

Một vài cảnh báo ngăn chặn điều này là phổ quát:

  • Nó có thể gây ra dương tính sai nếu đầu vào của bạn chấp nhận số lượng thực sự nhỏ
  • Nó sẽ không kích hoạt bất kỳ mã xử lý lỗi nào, nếu bạn cần làm điều gì đó đặc biệt nếu không được nhập

Vì vậy, nó là tốt nhất cho các trường hợp mục đích chung, không quan trọng. Ví dụ: nếu bạn cần trả về kết quả của một tính toán phức tạp và không quan tâm nếu câu trả lời có chính xác với n chữ số (được xác định là 0,0001 so với 0,00000001, v.v.); Bạn chỉ không muốn nó phá vỡ một cách chia rẽ.

Như một câu trả lời khác được đề xuất, bạn cũng có thể tạo ra một chức năng toàn cầu có thể tái sử dụng.

function divisor( n ){ return ( n = 0 ? 0.0001 : n ); }
function myFunction( input ){ return 1 / divisor( input ); }

Những cải tiến có thể:

function divisor( n, orError ){
    if( typeof n == 'undefined' || isNaN( n ) || !n ){
        if( orError ){ throw new Error( 'Divide by zero.' ); }
        return 0.000000000000001;
    }else{ return 0 + n; }
}

Điều này sẽ lấy bất kỳ giá trị nào (null, số, chuỗi, đối tượng) và nếu không hợp lệ hoặc bằng không, hãy trả về giá trị giống như không an toàn. Nó cũng sẽ ép buộc đầu ra đến một số chỉ trong trường hợp nó là một chuỗi và bạn đang làm một cái gì đó kỳ lạ. Tất cả điều này sẽ đảm bảo rằng chức năng chia của bạn luôn hoạt động. Cuối cùng, đối với các trường hợp bạn muốn tự xử lý các lỗi như vậy, bạn có thể đặt tham số thứ hai thành True và sử dụng

function myFunction( input ){
    input = 0 ? 0.0001 : input; // same as if( input == 0 ){ input = 0.0001; }
    return 1 / input;
}
2.

Điều gì sẽ xảy ra nếu một số được chia cho 0?

Trả lời: Bất kỳ số chia cho 0 không được xác định.Hãy cho chúng tôi biết hai sự thật về số không.Giải thích: Phân chia theo 0 có nghĩa là lặn số lượng nhất định trong số 0 người.Điều đó có nghĩa là các mặt hàng ở đó nhưng không có người nào để chia sẻ, đó không phải là một tình huống hợp lý.Any number divided by 0 is not defined. Let us know two facts about zero. Explanation: Division by 0 means diving the given quantity among 0 people. That means items are there but there no people to share with, which is not a sensible situation.

Phân chia theo 0 được coi là một lỗi trong JavaScript?

Phân chia theo 0 không phải là một lỗi trong JavaScript: nó chỉ đơn giản là trả về vô cực hoặc vô cùng tiêu cực.Tuy nhiên, có một ngoại lệ: Zero chia cho Zero không có giá trị được xác định rõ và kết quả của hoạt động này là giá trị không số đặc biệt, được in là NAN.: it simply returns infinity or negative infinity. There is one exception, however: zero divided by zero does not have a welldefined value, and the result of this operation is the special not-a-number value, printed as NaN.

Phân chia theo 0 có thể không?

Chỉ cần nói rằng nó tương đương "không xác định."Tóm lại với tất cả những điều này, chúng ta có thể nói rằng không trên 1 bằng không.Chúng ta có thể nói rằng số 0 trên 0 bằng "không xác định".Và tất nhiên, cuối cùng nhưng không kém phần quan trọng, rằng chúng ta rất nhiều lần phải đối mặt, là 1 chia cho 0, vẫn chưa được xác định.zero over zero equals "undefined." And of course, last but not least, that we're a lot of times faced with, is 1 divided by zero, which is still undefined.