如何在变量中加号

时间:2015-04-14 08:08:51

标签: javascript variables

我想计算两个数字,非常简单。

但有没有办法在变量中运算运算符然后进行计算?

var x = 5;
var y = 5;
var p = '+';
var z = x + p + y;

$(".button").click(function() {
  alert(z);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>

4 个答案:

答案 0 :(得分:15)

尽可能避免使用eval。对于此示例,只需一个简单的switch...case语句即可:

var x = 5;
var y = 5;
var z;
var p = "+";
switch (p) {
    case "+":
        z = x + y;
        break;
    case "-":
        z = x - y;
        break;
}

您还可以使用功能图:

var fnlist = {
    "+": function(a, b) { return a + b; },
    "-": function(a, b) { return a - b; }
}
var x = 5;
var y = 5;
var p = "+";
var z = fnlist[p](x, y);

答案 1 :(得分:7)

或者在将要添加变量的字符串上使用parseInt:

&#13;
&#13;
	var x = 5;
	var y = 5;
	var p = '-';
	var z = x + parseInt(p + y);

$(".button").click(function(){
  alert(z);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>
&#13;
&#13;
&#13;

答案 2 :(得分:3)

您正在寻找eval功能:

	var x = 5;
	var y = 5;
	var p = '+';
	var z = x + p + y;

$(".button").click(function(){
  alert(eval(z));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>

但是,您必须记住,使用eval函数可能存在风险。例如,如果以错误的方式使用它可以允许一个人进行注入攻击。调试也可能更困难。 我建议您阅读question

答案 3 :(得分:0)

您可以使用eval功能:

var x = 5;
var y = 5;
var p = '+';
var z = eval(x + p + y);

alert(z);