标签: eval

理解ASP.NET Eval()和Bind()

任何人都可以向我展示一些绝对最小的ASP.NET代码来理解Eval()Bind()

最好是为您提供两个单独的代码段或可能是Web链接.

asp.net bind eval

54
推荐指数
2
解决办法
13万
查看次数

在严格模式下间接评估

我理解eval()在非严格的上下文中是如何工作的,但是eval()在严格模式下使用的情况完全让我迷惑不解.如果eval()是在全球范围内直接调用,变量保存在新的内部eval()范围:

'use strict';
eval('var a = 1;');
console.log(a); // ReferenceError: a is not defined
Run Code Online (Sandbox Code Playgroud)

但是,如果我在全局范围内执行间接调用eval()(应该是同一个东西,对吗?),它就好像它不是在严格模式下(如果你不相信我,请看这个JSFiddle):

'use strict';
(0, eval)('var a = 1;'); // indirect call to eval
console.log(a); // 1???
Run Code Online (Sandbox Code Playgroud)

如果你不明白是什么(0, eval),请参阅为什么谷歌主页使用(0,obj.func)(args)语法?.

至少根据我对如何eval()在严格模式下工作的理解,它意味着(无论eval()是直接还是间接调用)为eval()调用中定义的变量创建一个新的范围,但这似乎不是这里的情况.规范说明如下:

10.4.2输入Eval代码

当控件进入eval代码的执行上下文时,执行以下步骤:

  1. 如果没有调用上下文或者eval代码没有通过直接调用(15.1.2.1.1)评估到eval函数那么,

    一个.将执行上下文初始化为使用eval代码作为C的全局执行上下文,如10.4.1.1中所述.

  2. 其他,

    一个.将ThisBinding设置为与调用执行上下文的ThisBinding相同的值.
    湾 将LexicalEnvironment设置为与调用执行上下文的LexicalEnvironment相同的值. …

javascript eval ecmascript-5

51
推荐指数
1
解决办法
5703
查看次数

如何打印/回显环境变量?

如何打印刚设置的环境变量?

NAME=sam echo "$NAME" # empty
Run Code Online (Sandbox Code Playgroud)

你可以看到这里使用eval它的工作原理.这是这样的吗?

NAME=sam eval 'echo $NAME' # => sam
Run Code Online (Sandbox Code Playgroud)

bash eval

50
推荐指数
4
解决办法
9万
查看次数

如何动态评估C#表达式?

我想做相当于:

object result = Eval("1 + 3");
string now    = Eval("System.DateTime.Now().ToString()") as string
Run Code Online (Sandbox Code Playgroud)

在Biri的链接之后,我得到了这个片段(修改后删除了过时的方法ICodeCompiler.CreateCompiler():

private object Eval(string sExpression)
{
    CSharpCodeProvider c = new CSharpCodeProvider();
    CompilerParameters cp = new CompilerParameters();

    cp.ReferencedAssemblies.Add("system.dll");

    cp.CompilerOptions = "/t:library";
    cp.GenerateInMemory = true;

    StringBuilder sb = new StringBuilder("");
    sb.Append("using System;\n");

    sb.Append("namespace CSCodeEvaler{ \n");
    sb.Append("public class CSCodeEvaler{ \n");
    sb.Append("public object EvalCode(){\n");
    sb.Append("return " + sExpression + "; \n");
    sb.Append("} \n");
    sb.Append("} \n");
    sb.Append("}\n");

    CompilerResults cr = c.CompileAssemblyFromSource(cp, sb.ToString());
    if (cr.Errors.Count > 0)
    {
        throw …
Run Code Online (Sandbox Code Playgroud)

c# reflection eval

49
推荐指数
3
解决办法
9万
查看次数

在JavaScript中使用eval()的主要好处是什么?

我知道这可能是一个新手问题,但我很好奇它的主要好处 eval() - 哪里用得最好?我很感激任何信息.

javascript eval

46
推荐指数
5
解决办法
4万
查看次数

使用pd.eval()在pandas中进行动态表达式评估

目标和动机

pd.eval并且eval是pandas API套件中功能强大但被低估的功能,它们的使用远未完全记录或理解.小心适量,eval并且engine可以极大地简化代码,提高性能,并成为创建动态工作流的强大工具.

这个规范QnA的目的是让用户更好地理解这些功能,讨论一些鲜为人知的功能,如何使用它们,以及如何最好地使用它们,以及清晰易懂的示例.这篇文章将讨论的两个主要议题是

  1. 了解parser,df2x在争论pd.eval,以及它们如何被用来计算表达式
  2. 了解之间的差eval,eval并且engine,当每个功能是合适的用于动态执行.

这篇文章不能替代文档(答案中的链接),所以请完成它!


我将以这样的方式构建一个问题,以便开启对所支持的各种功能的讨论parser.

给出两个DataFrame

np.random.seed(0)
df1 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))
df2 = pd.DataFrame(np.random.choice(10, (5, 4)), columns=list('ABCD'))

df1
   A  B  C  D
0  5  0  3  3
1  7  9  3  5
2  2  4  7  6
3  8  8  1  6
4  7  7  8  1

df2
   A  B  C …
Run Code Online (Sandbox Code Playgroud)

python eval dataframe pandas

45
推荐指数
2
解决办法
7156
查看次数

以字符串形式访问对象属性并设置其值

我有一个Account班级的实例.每个帐户对象都有一个所有者,参考等.

我可以访问帐户属性的一种方法是通过访问器

account.Reference;
Run Code Online (Sandbox Code Playgroud)

但我希望能够使用动态字符串选择器访问它,如:

account["PropertyName"];
Run Code Online (Sandbox Code Playgroud)

就像在JavaScript中一样.所以我会有account["Reference"]哪些会返回值,但我也希望能够在之后分配一个新值,如:

account["Reference"] = "124ds4EE2s";
Run Code Online (Sandbox Code Playgroud)

我注意到我可以使用

DataBinder.Eval(account,"Reference") 
Run Code Online (Sandbox Code Playgroud)

获取基于字符串的属性,但使用此属性我无法为属性赋值.

我怎么能这样做?

c# string eval accessor databinder

43
推荐指数
5
解决办法
7万
查看次数

使用源代码与解析和评估有什么注意事项?

精简版

我可以更换吗?

source(filename, local = TRUE, encoding = 'UTF-8')
Run Code Online (Sandbox Code Playgroud)

eval(parse(filename, encoding = 'UTF-8'))
Run Code Online (Sandbox Code Playgroud)

没有任何破损的风险,使UTF-8源文件在Windows上运行?

长版

我目前正在通过加载特定的源文件

source(filename, local = TRUE, encoding = 'UTF-8')
Run Code Online (Sandbox Code Playgroud)

但是,众所周知,这不适用于Windows,完全停止.

作为一种解决方法,Joe Cheng建议使用

eval(parse(filename, encoding = 'UTF-8'))
Run Code Online (Sandbox Code Playgroud)

这看起来效果很好1,但即使在查阅了源代码之后source,我也不明白它们在一个关键细节上的区别:

双方sourcesys.source不是简单地parse,然后eval将文件内容.相反,他们解析文件内容,然后在解析的表达式上手动迭代,然后eval逐个迭代.我不明白为什么这是必要的sys.source(source至少用它来显示详细的诊断,如果有这样的指示;但sys.source不做任何类似的事情):

for (i in seq_along(exprs)) eval(exprs[i], envir)
Run Code Online (Sandbox Code Playgroud)

eval单独声明语句的目的是什么?为什么它直接在子表达式上迭代索引?还有什么其他警告?

为了澄清:我关心其他参数sourceparse …

eval r

43
推荐指数
1
解决办法
1286
查看次数

安全沙箱并执行用户提交的JavaScript?

我希望能够让用户提交任意JavaScript代码,然后将其发送到Node.JS服务器并安全执行,然后将输出发送回多个客户端(作为JSON).eval我想到了这个功能,但我知道这有多个安全问题(用户提交的代码可以访问Node的File API等).我见过一些项目,如Microsoft Web Sandbox和Google Caja,它们允许执行清理标记和脚本(用于在网站上嵌入第三方广告),但似乎这些是客户端工具,我不确定它们是否可以在Node中安全使用.

有没有一种标准的方法来沙盒并在Node中执行不受信任的JavaScript,从而获得输出.尝试做这个服务器端是错误的吗?

编辑:用户能够利用JavaScript的全部功能并不重要,事实上,最好能够选择将哪些API提供给用户代码.

编辑:我将继续使用我发现的内容进行更新.这个Sandcastle模块(bcoe/sandcastle)似乎旨在实现我的想法.不确定它有多安全,但由于我不是太重要,我想如果尝试的话.如果我能成功地做到这一点,我会添加自己的答案.

javascript eval sandbox sanitize node.js

42
推荐指数
4
解决办法
1万
查看次数

在javascript中计算字符串值,而不是使用eval

有没有办法计算存储在JavaScript中的字符串中的公式而不使用eval

通常我会做类似的事情

var apa = "12/5*9+9.4*2";
alert(eval(apa));
Run Code Online (Sandbox Code Playgroud)

那么,有没有人知道替代品eval

javascript eval

41
推荐指数
6
解决办法
5万
查看次数