变量运算符可能吗?

变量运算符可能吗?

有没有办法做类似于以下任何一种情况:

var1 = 10; var2 = 20;var operator = "<";console.log(var1 operator var2); // returns true

- 要么 -

var1 = 10; var2 = 20;var operator = "+";total = var1 operator var2; // total === 30


繁花如伊
浏览 401回答 3
3回答

慕的地10843

没有开箱即用。但是,很容易用包括JS在内的多种语言手工构建。var&nbsp;operators&nbsp;=&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;'+':&nbsp;function(a,&nbsp;b)&nbsp;{&nbsp;return&nbsp;a&nbsp;+&nbsp;b&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;'<':&nbsp;function(a,&nbsp;b)&nbsp;{&nbsp;return&nbsp;a&nbsp;<&nbsp;b&nbsp;}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;... &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};var&nbsp;op&nbsp;=&nbsp;'+';alert(operators[op](10,&nbsp;20));您可以使用基于ascii的名称plus,以避免在不需要时通过字符串。然而,有一半类似于这个问题的问题被问到,因为有人用字符串表示运算符和想要的函数。

慕容708150

你可以使用这个eval()功能,但这不是一个好主意。我认为更好的方法是为您的运营商编写函数,如下所示:var&nbsp;addition&nbsp;=&nbsp;function(first,&nbsp;second)&nbsp;{ &nbsp;&nbsp;&nbsp;return&nbsp;first+second;};var&nbsp;subtraction&nbsp;=&nbsp;function(first,&nbsp;second)&nbsp;{ &nbsp;&nbsp;&nbsp;return&nbsp;first-second;};var&nbsp;operator&nbsp;=&nbsp;addition;alert(operator(12,&nbsp;13));var&nbsp;operator&nbsp;=&nbsp;subtraction;alert(operator(12,&nbsp;13));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript