JavaScrip Zone


新发表

新评论

留言信息

链接收藏

『中国群落博客』

免费注册博客通道

快速登陆


Eval、Execute、ExecuteGlobal

Eval、Execute、ExecuteGlobal
这三个语句(函数)都是执行字符串表达式,不过它们之间又有所不同。

Eval 计算一个表达式的值并返回结果。
语法:[result = ]Eval(expression)
expression 为任意有效 VBScript 表达式的字符串
示例:response.Write(eval("3+2")) '输出 5
"3+2" 使用引号括起来,表示是一个字符串,但是在 Eval “眼里”,把它当作一个表达式 3+2 来执行。

Execute 执行一个或多个指定的语句。多个语句间用冒号(:)隔开。
语法:Execute statements
示例:Execute "response.Write(""abc"")" '输出 abc
"response.Write(""abc"")" 使用引号括起来,表示是一个字符串,但是在 Execute “眼里”,把它当作一个语句 response.Write("abc") 来执行。

ExecuteGlobal 在全局名字空间中执行一个或多个指定的语句。
语法:ExecuteGlobal statement
示例
dim c
c = "全局变量"
sub S1()
    dim c
    c = "局部变量"
    Execute "response.Write(c)" '输出 局部变量
    ExecuteGlobal "response.Write(c)" '输出 全局变量
end sub
Execute "response.Write(c)" '输出 全局变量
call S1()
变量 c 既在全局范围内定义,也在函数范围内定义,Execute 按自己所处的位置来决定使用局部变量还是全局变量,而 ExecuteGlobal 则始终只认全局范围的 c。

总结:
Eval 只执行一个语句 语句可以有也可以没有返回值
Execute 执行一个或多个语句 忽略语句的返回值
ExecuteGlobal 执行一个或多个语句 忽略语句的返回值 全局变量和局部变量同名时总是使用全局变量

注意:
在 VBScript 中“赋值”与“比较”都是使用“=”,比如“a=b”既可以说是将 b 值赋予 a,也可以说是判断 a 与 b 是否相等,那么 Eval("a=b") 是表示赋值还是比较运算呢?
这里有个约定,在 Eval 中,“a=b”总是表示比较运算,在 Execute 和 ExecuteGlobal 中,总是表示赋值。


                                                                 2006-3-7 13:13:05

Posted by jser | 阅读全文() | 回复(1) | 引用通告() | 编辑

Re:Eval、Execute、ExecuteGlobal

在flash应该怎么写呢?


                                                                 2006-7-5 9:50:47

Posted by 嬴政(游客) | 个人主页 | 引用 | 返回 | 删除

..................................................
博客的精神于写自己某一刻的思想或心动!
..................................................
当然要是你愿意就是拿来做记事本也可以!
..................................................
群落博客将提供全程免费服务!免费注册!
..................................................
欢迎您成为群落博客的成员!使用之前请先看系统帮助>>>>系统帮助
..................................................

免费注册群落博客【点击完成注册】
..................................................

发表评论:

    昵称:
    密码: (游客无须输入密码)
    主页:
    标题: