假設我有一個字符串(如分數);功能不工作的JavaScript問題(它將小數轉換爲小數)
var num = "1/2";
爲什麼這項工作:
var y = num.split(' ');
if (y.length > 1) {
var z = y[1].split('/');
var a = (+y[0] + (z[0]/z[1]));
num = a;
} else {
z = y[0].split('/');
if (z.length > 1) {
a = (z[0]/z[1]);
num = a;
}
}
alert(num); //The alert box shows my variable now as a decimal.
這並不:
function parseFractions(x) {
var y = x.split(' ');
if (y.length > 1) {
var z = y[1].split('/');
var a = (+y[0] + (z[0]/z[1]));
x = a;
} else {
z = y[0].split('/');
if (z.length > 1) {
a = (z[0]/z[1]);
x = a;
}
}
}
parseFractions(num); //Here I call my function.
alert(num);
//The alert box does not even show up. The fraction isn't converted into a decimal.
它基本上是同樣的事情,唯一的區別是,在第二屆一個我試圖把它變成一個函數,所以我不必每次嘗試將分數轉換爲小數時重複這些代碼行。
那麼我做錯了什麼?我正試圖用一個函數來實現嗎?對這個問題的任何亮點表示讚賞!
功能 「按引用傳遞」和「按價值傳遞」。 – epascarello 2015-02-24 20:10:02
如果'alert'沒有顯示出來,則表示運行時錯誤。這可能是一個簡單的問題,如果你[學習如何調試JavaScript],你可以自己解決它(https://developer.mozilla.org/en-US/docs/Debugging_JavaScript)。設置斷點,檢查變量......不難發現代碼中發生了什麼。 – 2015-02-24 20:17:50
'未捕獲的類型錯誤:未定義不是函數'讓我找到那個來源 – Travis 2015-02-24 20:20:47