簡體   English   中英

獲得NaN而不是數字

[英]Getting NaN Instead of Number

我對下面的代碼有一個小問題,而不是我得到NaN 怎么了?

for (var i = 0; i<100; i++) {
    x = i ^ i
    result = x + result;
}
var y = result - (result ^ result);
console.log(y);

這是NaN因為你沒有在開始時初始化result

讓我們看看腳本:

var result = 0;
var x;
for (var i = 0; i<100; i++) {
    x = i ^ i
    result = x + result;
}

在這里,您為每個i運行按位XOR。 由於i中的所有位都等於它們自己,因此x將始終為0. result在開始時為0,每次向其添加0,結果, result值為0。

var z = result ^ result;

當你自己對result進行異或時,那么result所有位都等於它們自己,所以結果將為0。

var y = result - z;

您從0減去0,結果為0。

A XOR B = A <> B.

按位級別

XOR B導致每個位的XOR結果。

更具體地說明為什么你得到NaN :正如@LajosArpad所說,你實際上只是做result = 0 + result; 100次。

但是,由於您沒有初始化result ,因此undefined undefined數學運算(如0 + )將始終產生NaN

暫無
暫無

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

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