2013-11-01 33 views
-2

我是JavaScript的初学者,我正在尝试制作一个简单的计算器。我遇到的问题是计算器返回实际方程(作为字符串)而不是结果值。 Here is a jsFIDDLE documentJavascript计算器返回字符串而不是值

$(document).ready(function() { 
var score = ""; 

$("#nOne").click(function() { 
    score += 1; 
}); 
$("#nTwo").click(function() { 
    score += 2; 
}); 

$("#add").click(function() { 
    score += "+"; 
}); 

$("#nEqual").click(function() { 
    alert(score); 
}); 

});

还有一个优先使用< input type="button">< div>作为一个按钮,或者他们都在做一个简单的计算器相同?

+0

好的提示,但仍然添加按钮会搞砸了。这是在我看来写计算器的逻辑错误 – adam187

+0

@ raina77ow如何设置'score = 0'来解决问题?还有'score + ='+'',它将'score'转换为一个字符串...... – Teemu

+0

Web充满了“简单的javascript计算器示例”,请只搜索一下以找到它们(30 200 000条结果),不是我倒下了。 – Teemu

回答

2

您可以使用eval()JavaScript函数。

在该示例中,按钮不添加值,而是连接字符串值。按#nOne,#add,#nTwo后,你会在得分中得到“1 + 2”(字符串),而不是3(数字)。 eval()执行表达式(字符串)“转换”为代码。 w3schools.com/jsref/jsref_eval.asp

$("#nEqual").click(function() { 
    alert(eval(score)); 
}); 

虽然这将是难看的代码!

+0

如果你还可以解释一下,为什么需要'eval()',我会加注你的答案; )。 – Teemu

+0

在该示例中,按钮不会添加值,而是连接字符串值。按'#nOne','#add','#nTwo'后,在'score'中得到“1 + 2”(字符串),而不是3(数字)。 eval()执行表达式(字符串)“转换”为代码。 http://www.w3schools.com/jsref/jsref_eval.asp –

+0

实际上,您应该将解释添加到您的答案中,尽管提到了w3schools,它仍会为未来的访问者提供更好的服务(以及OP of course)... +1)。 。 – Teemu

相关问题