首先,我是JavaScript的新手。我正在制作一个小费计算器,但是这些数字并没有达到预期的水平。
function calculate(bill, tip, people){
var tip = bill * tip / 100;
// Total
console.log("Total: " + tip + bill / people);
// Tip
console.log("Tip: " + tip);
}
calculate(100, 5, 1);
我期望的输出是:Total: 105
,但是我得到的是Total: 5100
。我在这里做什么错了?
答案 0 :(得分:2)
问题是您将数字连接为字符串而不是计算。将计算放在括号内,然后进行串联:
function calculate(bill, tip, people) {
var tip = bill * tip / 100;
// Total
console.log("Total: " + (tip + bill / people));
// Tip
console.log("Tip: " + tip);
}
calculate(100, 5, 1);
答案 1 :(得分:0)
"Total: " + tip + bill / people
那将首先计算除法,所以是:
"Total: " + tip + /*value*/
现在它是从左到右求值的,因此字符串和tip
会串联在一起,这会将tip
变成字符串:
"Total: tip" + /*value*/
现在第二次进行字符串连接了,结果是:
"Total: tipvalue"
要更改评估顺序,可以使用(...)
来包装必须首先完成的操作,在这种情况下为(tip + bill / people)