Twi*_*wix 5 javascript variables
我想计算两个数字,非常简单.
但是有没有办法让运算符变量然后进行计算?
var x = 5;
var y = 5;
var p = '+';
var z = x + p + y;
$(".button").click(function() {
alert(z);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>
Run Code Online (Sandbox Code Playgroud)
Sal*_*n A 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;
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用功能图:
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);
Run Code Online (Sandbox Code Playgroud)
或者在要添加变量的字符串上使用parseInt:
var x = 5;
var y = 5;
var p = '-';
var z = x + parseInt(p + y);
$(".button").click(function(){
alert(z);
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>
Run Code Online (Sandbox Code Playgroud)
您正在寻找eval函数:
var x = 5;
var y = 5;
var p = '+';
var z = x + p + y;
$(".button").click(function(){
alert(eval(z));
});
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="button">Click ME !</div>
Run Code Online (Sandbox Code Playgroud)
但是,您必须记住,使用eval
函数有潜在的风险。例如,如果使用不当,可能会导致注入攻击。调试也可能更加困难。我建议阅读这个问题。