2013-10-29 238 views
-2

我希望知道檢查兩個數字是否相等的最佳方法。檢查兩個數字是否相等的最佳方法

我生成一個簡單的例子,如果兩個數字相等,就檢查1000萬次。

這是在JavaScript和我評論結果在毫秒。我使用Chrome

<html> 
<head> 
<script> 

function goOn(arr) 
{ 
    var resul = 0; 
    var a = 50; 
    var b = 50; 
    var fechai = new Date(); 
    for(i=0;i<10000000;i++) 
    { 
     //if(a^b === false)  // 1359 
     //if((a & b) === a)   // 160 
     //if(a === b)    // 148 
     //if(!(a - b))    // 172 
     if((a & ~b) === 0)   // 175 
     { 
      resul++; 
     } 
    } 
    var fechaf = new Date(); 
    alert(fechaf - fechai); 
} 
</script> 
</head> 

<body> 
<input type="button" value="View message" onclick="goOn()"> 
</body> 

</html> 
+2

爲什麼不只是如果(a === b){...? – dandavis

+0

對於'(a === b)'=> http://jsfiddle.net/aJWFe/1/ – PlantTheIdea

+0

+1,或者,如果你不想成爲「全部」,Object.is()也是這樣as ===,還聲稱NaN === NaN ... – dandavis

回答

3

最好的方法用來檢查平等是平等的運營商(=====)使用這些方法的任何其他只會導致代碼,將大量迷惑大家,而無需任何明顯的性能影響。 (如果是這樣,這是JavaScript,任何方式的影響都將完全依賴於平臺/瀏覽器。)

換句話說,不要做你正在嘗試做的事情。

+0

是真實的,但如果你想100%正確的話,不要忘記也要和NaN比較。 – dandavis

+0

我能想到的最佳方法包括NaN支持: var equal =(a == == b ||(a!== a)&&(b!== b)); – rajsite

相關問題