Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这是邪恶的评价吗?_Javascript_Eval - Fatal编程技术网

Javascript 这是邪恶的评价吗?

Javascript 这是邪恶的评价吗?,javascript,eval,Javascript,Eval,用JavaScript编写函数。该计划是函数创建一个对象,它需要布尔语句作为参数。类似这样的东西-> var foo = new fuzz("pie < squirrel", "monkey === banana"); var foo=newfuzz(“pie

用JavaScript编写函数。该计划是函数创建一个对象,它需要布尔语句作为参数。类似这样的东西->

var foo = new fuzz("pie < squirrel", "monkey === banana");
var foo=newfuzz(“pie
我的问题是——这是邪恶的吗

*注意-*在函数“fuzz”中,我将对参数值进行检查。(检查字符串、长度等)。我想这就是使用eval的方式,它在t'up网站上的名声太差了


感谢总结评论中的结论:编写一个简单的规则评估引擎!例如:

var variables = { ... };

function niceEval(condition) {
    var operands = condition.match(/(\w+)\s+(\S+)\s+(\w+)/);

    switch (operands[2]) {
        case '<' :
            return variables[operands[1]] < variables[operands[3]];
        ...
    }
}
var变量={…};
函数niceEval(条件){
变量操作数=条件。匹配(/(\w+)\s+(\s+)\s+(\w+/);
开关(操作数[2]){

案例“总结评论中的结论:编写一个简单的规则评估引擎!例如:

var variables = { ... };

function niceEval(condition) {
    var operands = condition.match(/(\w+)\s+(\S+)\s+(\w+)/);

    switch (operands[2]) {
        case '<' :
            return variables[operands[1]] < variables[operands[3]];
        ...
    }
}
var变量={…};
函数niceEval(条件){
变量操作数=条件。匹配(/(\w+)\s+(\s+)\s+(\w+/);
开关(操作数[2]){

案例“总结评论中的结论:编写一个简单的规则评估引擎!例如:

var variables = { ... };

function niceEval(condition) {
    var operands = condition.match(/(\w+)\s+(\S+)\s+(\w+)/);

    switch (operands[2]) {
        case '<' :
            return variables[operands[1]] < variables[operands[3]];
        ...
    }
}
var变量={…};
函数niceEval(条件){
变量操作数=条件。匹配(/(\w+)\s+(\s+)\s+(\w+/);
开关(操作数[2]){

案例“总结评论中的结论:编写一个简单的规则评估引擎!例如:

var variables = { ... };

function niceEval(condition) {
    var operands = condition.match(/(\w+)\s+(\S+)\s+(\w+)/);

    switch (operands[2]) {
        case '<' :
            return variables[operands[1]] < variables[operands[3]];
        ...
    }
}
var变量={…};
函数niceEval(条件){
变量操作数=条件。匹配(/(\w+)\s+(\s+)\s+(\w+/);
开关(操作数[2]){


案例“为什么不将这些语句作为匿名函数传递?您显示的代码不是。您实际使用的
eval
的代码本身可能不是。但可能有一个更好的解决方案,它根本不需要
eval
。没有更多上下文,我们无法判断。在中使用的值来自何处布尔表达式?有什么原因不能只传递布尔值吗?它是一个更大的程序的一部分,它意味着非常“动态”。我需要创建一个用于创建按钮的结构。按钮会发生变化,这取决于许多事情。每个按钮的布尔语句数未知。(例如,如果变量'C<4',按钮'A'可能有标签'B',但如果'C==3',它也可能有值'D',诸如此类。因此,这些语句将在对象中的if语句中使用。它们将只在if语句中使用。我将解析这些语句(检查长度。检查没有)并且每一个都包含一个bool运算符。创建一个简单的规则计算引擎似乎更明智。如果您只需要支持简单的比较操作,那么实现起来就非常简单。将字符串分为三个部分:左操作数、右操作数和运算符,以及
开关()
基于运算符。为什么不将这些语句作为匿名函数传递?您显示的代码不是。您实际使用的代码本身可能不是。但可能有一个更好的解决方案,它根本不需要
eval
。没有更多上下文,我们无法判断。值在哪里布尔表达式中使用的e?有什么原因不能只传递布尔值吗?它是更大程序的一部分,意味着非常“动态”。我需要创建一个用于创建按钮的结构。按钮会发生变化,这取决于许多事情。每个按钮的布尔语句数未知。(例如,如果变量'C<4',按钮'A'可能有标签'B',但如果'C==3',它也可能有值'D',诸如此类。因此,这些语句将在对象中的if语句中使用。它们将只在if语句中使用。我将解析这些语句(检查长度。检查没有)并且每一个都包含一个bool运算符。创建一个简单的规则计算引擎似乎更明智。如果您只需要支持简单的比较操作,那么实现起来就非常简单。将字符串分为三个部分:左操作数、右操作数和运算符,以及
开关()
基于运算符。为什么不将这些语句作为匿名函数传递?您显示的代码不是。您实际使用的代码本身可能不是。但可能有一个更好的解决方案,它根本不需要
eval
。没有更多上下文,我们无法判断。值在哪里布尔表达式中使用的e?有什么原因不能只传递布尔值吗?它是更大程序的一部分,意味着非常“动态”。我需要创建一个用于创建按钮的结构。按钮会发生变化,这取决于许多事情。每个按钮的布尔语句数未知。(例如,如果变量'C<4',按钮'A'可能有标签'B',但如果'C==3',它也可能有值'D',诸如此类。因此,这些语句将在对象中的if语句中使用。它们将只在if语句中使用。我将解析这些语句(检查长度。检查没有)并且每一个都包含一个bool运算符。创建一个简单的规则计算引擎似乎更明智。如果您只需要支持简单的比较操作,那么实现起来就非常简单。将字符串分为三个部分:左操作数、右操作数和运算符,以及
开关()
基于运算符。为什么不将这些语句作为匿名函数传递?您显示的代码不是。您实际使用的代码本身可能不是。但可能有一个更好的解决方案,它根本不需要
eval
。没有更多上下文,我们无法判断。值在哪里在布尔表达式中使用的e?有什么原因不能只传递布尔值吗?它是更大程序的一部分,意味着非常“动态”。我需要