2017-03-14 66 views
0

我想寫一個計算函數,將「添加」兩個數字並將結果作爲字符串打印出來,但是我的語法不起作用。你能看看我的代碼,並告訴我如何解決它?後來我想添加更多的數學函數,如可插入的分割和多個。謝謝。Javascript:我想寫一個計算函數,將「添加」兩個數字,並將結果作爲字符串打印出來,但我的語法不起作用

var add = function(x,y){ 
    return x+y; 
}; 

var calculate = function(string,x,y){ 

    if(string === "add"){ 
    var result = console.log(x + "+ " y + "= " + add(x,y)); 
    return result; 
    } 
}; 

calculate("add",5,6); 
+3

你在字符串文字和變量'y'之間缺少'+'。 – Bergi

+0

@Bergi非常感謝! –

+0

'console.log'返回'undefined',然後賦值給'result'! –

回答

2

y之前錯過了+跡象。
此:

var result = console.log(x + "+ " y + "= " + add(x,y)); 

必須

var result = console.log(x + "+ " + y + "= " + add(x,y)); 

無論如何,你的功能不完全正確。 console.log什麼也沒有返回,並且您的result變量將始終評估爲undefined,並且函數也將始終返回undefined
此外,您calculate功能實際上做計算並輸出結果它可以是一個人誰調用此方法,打破single-responsibility principle並不透明。

也許,這就是獨立的計算和呈現一個更好的主意:

function add(x,y){ 
 
    return x+y; 
 
} 
 

 
function calculate(action,x,y){ 
 
    if(action === "add") { 
 
    return x + "+ " + y + "= " + add(x,y); 
 
    } 
 
} 
 

 
var result = calculate("add",5,6); 
 
console.log(result);

您可能還希望在未來,當你將有switch語句來代替if (action === "add")兩個以上動作:)

相關問題