我目前在學習JS,當我做一些練習時,我發現一些問題,我不清楚JavaScript中的數據類型。我明白JS不需要特定的類型指示,只要可能,它會自動進行類型轉換。不過,我挨一個問題,當我不做類型轉換是如下:JAVASCRIPT數據類型問題
var sum = 0;
function totalSum (a) {
if (a == 0) {
return sum;
}
else {
sum += a;
return totalSum(--a);
}
}
var i = prompt("Give me an integer");
// var num = parseInt(i);
alert("Total sum from 1 to " + i + " = " + totalSum(i));
// alert("Total sum from 1 to " + i + " = " + totalSum(num));
我注意到代碼完美地工作,如果我改變從字符串數據類型使用parseInt函數功能來詮釋,正如評論在代碼中。但是當我不做類型轉換的時候,事情就變得很奇怪了,如果我輸入提示值爲5,那麼我得到的最終結果是054321。AND以類似的方式輸入3,得到0321等等。
爲什麼會這樣?有人可以向我解釋爲什麼totalSum會是這樣一個數字嗎? javascript是不是會自動幫我把它變成整數,以便它在函數totalSum中工作?
樣本代碼也可以在http://jsfiddle.net/hphchan/66ghktd2/中查看。
謝謝。
'i'是一個字符串,需要將其轉換爲數字,'數(i)' – Hacketo