2016-04-22 59 views
-2

這是一個字符串轉換成int 在do while循環?我覺得我在parseInt函數的代碼是一個低效的方式,因爲它使計算機parseInt函數每次直到dowhile循環是真正的最佳途徑這是一個parseInt的有效方法嗎?

function randomUpper(upper) { 
    return Math.floor(Math.random() * upper) + 1 
} 

var limit = 10; 
var guess; 
var randomNumber = randomUpper(limit); 
var guessMade = 0; 

do{ 
    guess = prompt("Guess the number"); 
    guess = parseInt(guess); 
    guessMade++; 
} while (guess !== randomNumber); 

document.write(guessMade) 
+0

實際上「高效」是什麼意思? – zerkms

+0

你能澄清這種「效率低下的方式,因爲它每次都會使計算機parseInt直到dowhile循環爲真」 –

+0

而不是每次解析int,只需將'randomNumber'轉換爲字符串即可。所以,它會是'var randomNumber =''+ randomUpper(limit);'而不是'var randomNumber = randomUpper(limit);'字符串比較應該很快。 – hargasinski

回答

1

JavaScript是一種高級語言,像字符串到整數類型的強制操作不會給語言帶來太多的壓力。

你也不能避免類型強制。爲了將一個字符串與一個整數進行適當的比較,在某些時候它們必須是相同的類型(不考慮寬鬆比較),這意味着你必須手動轉換它,因爲嚴格的比較不會進行比較。

這真的不應該成爲一個問題,尤其是當您使用prompt,一個用戶輸入功能,等待瀏覽器窗口的反饋。這是一個比字符串整數轉換更昂貴的整體。