我想计算两个数字,非常简单。
但有没有办法在变量中运算运算符然后进行计算?
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>
答案 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:
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;
答案 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);