簡體   English   中英

JavaScript:為什么這會導致無限循環?

[英]JavaScript: Why is this causing an infinite loop?

我正在嘗試通過找到JavaScript數字行環繞的點來找到最大的數字。 例如,如果它只能容納數字0, 1, 127 ,然后我會發現127通過使用一個事實,即“ 127 + 1 = 0 ”。 所以我做了一個功能

function getLargestNumber ( ) 
{
   var somethingBig = 12939123, last = (somethingBig - 1);
   while ( ++somethingBig > ++last );
   return last;
}

但這會導致無限循環(或由於其他原因導致瀏覽器崩潰)。

我的功能邏輯有什么問題嗎?

JavaScript數字始終存儲為浮點數,而不是C中的整數。浮點數不會像C整數那樣“環繞”。

這可能對您幫助。 在不損失精度的情況下,Number可以使用的JavaScript最大整數值是多少?

看起來while循環將永遠運行,因為您總是同時增加somethingBig和last,因此somethingBig總是更大:

while ( ++somethingBig > ++last );

我不確定您到底想完成什么,但這將導致無限循環。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM