< 返回技术文档列表

Eval、Execute、ExecuteGlobal的区别有哪些

发布时间:2021-11-06 23:56:58

本篇内容主要讲解“Eval、Execute、ExecuteGlobal的区别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Eval、Execute、ExecuteGlobal的区别有哪些”吧!

  语法:[result=]eval_r(expression_r)

  expression_r为任意有效VBScript表达式的字符串

  示例:

  代码如下:

  response.Write(eval_r("3+2"))'输出5

  "3+2"使用引号括起来,表示是一个字符串,但是在Eval“眼里”,把它当作一个表达式3+2来执行。

  Execute执行一个或多个指定的语句。多个语句间用冒号(:)隔开。

  语法:Executestatements

  示例:

  Execute"response.Write(""abc"")"'输出abc

  "response.Write(""abc"")"使用引号括起来,表示是一个字符串

  但是在Execute“眼里”,把它当作一个语句response.Write("abc")来执行。

  ExecuteGlobal在全局名字空间中执行一个或多个指定的语句。

  语法:ExecuteGlobalstatement

  Eval、Execute、ExecuteGlobal三者区别有什么

  示例:

  代码如下:

  dimc

  c="全局变量"

  subS1()

  dimc

  c="局部变量"

  Execute"response.Write(c)"'输出局部变量

  ExecuteGlobal"response.Write(c)"'输出全局变量

  endsub

  Execute"response.Write(c)"'输出全局变量

  callS1()

  变量c既在全局范围内定义,也在函数范围内定义,Execute按自己所处的位置来决定使用局部变量还是全局变量,而ExecuteGlobal则始终只认全局范围的c。

  总结:

  Eval只执行一个语句语句可以有也可以没有返回值

  Execute执行一个或多个语句忽略语句的返回值

  ExecuteGlobal执行一个或多个语句忽略语句的返回值全局变量和局部变量同名时总是使用全局变量

  注意:

  在VBScript中“赋值”与“比较”都是使用“=”,比如“a=b”既可以说是将b值赋予a,也可以说是判断a与b是否相等,那么eval_r("a=b")是表示赋值还是比较运算呢?

  这里有个约定,在Eval中,“a=b”总是表示比较运算,在Execute和ExecuteGlobal中,总是表示赋值。

到此,相信大家对“Eval、Execute、ExecuteGlobal的区别有哪些”有了更深的了解,不妨来实际操作一番吧!这里是血鸟云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!


/template/Home/Zkeys/PC/Static