2012-11-07 39 views
0

我有這個非常簡單的事情,這是行不通的。發生什麼事?據我已閱讀教程,這應該輸出4 ...正確的語法返回變量並再次使用它(javascript)

function sum(a,b) { 
    var result = a + b; 
    return result; 
    } 

sum(2,2);   
var test = sum(); 

alert(test); // shouldn't this return "4"? 

Link to the JSFiddle

+0

'sum(2,2)'執行該功能。 'var test = sum()'指定'sum'的結果,不含參數,當然是'NaN'。 – elclanrs

+0

'sum(2,2)'確實返回'4','sum()'單獨返回'NaN' - 你期望什麼(或者:你讀過哪些教程)? – Bergi

+0

我預計'var test = sum()'不會運行該函數。相反,它只會檢索返回的值。但是,再一次,我一直在研究JavaScript(和一般的編程)僅僅幾個星期。 –

回答

1

更改此:

sum(2,2);   
var test = sum(); 

要這樣:

var test = sum(2,2); 

第一個代碼不是技術只是錯誤它只是沒有做你想做的事情。你正在用合適的值調用sum函數,但從不將它設置爲任何變量的返回值,所以它只會被拋棄。你似乎覺得價值會「粘」到這個功能上,而事實並非如此。 (一些基本的語言都可以使它看起來這樣,雖然,也許這就是你的誤解的來源。)

你的第二個電話是基本的

var test = sum(null, null); 

相媲美,並當您連接兩個空值你再次爲空。

+0

編號'undefined'不是'null',並且在將它們相加而不是null時返回'NaN'。 – Bergi

+0

我意識到調用沒有參數的函數看起來很奇怪,但是......我非常有限的經驗告訴我,當你這樣做時:'var test = sum(2,2)'再次運行RUNS函數,而且我沒有我不想讓它運行,我只是想檢索它的價值。這就是爲什麼我有點困惑。 –

+0

@Bergi - 我不想給他一些新的術語。 –

2
function sum(a,b) { 
    var result = a + b; 
    return result; 
} 

var test = sum(2,2); 

alert(test); 
相關問題