html语言中eval函数作用,eval(Javascrip函数)_百度百科

eval

(Javascrip函数)

编辑

锁定

讨论

上传视频

eval是Javascript内置函数,用于计算字符串表达式的值。例如eval("2+3") 返回的是5。

中文名

eval

外文名

eval参    数

string

描    述

要计算的字符串

属    性

函数

eval基本参数

编辑

codeString(编程函数)

必选。包含有效 JScript 代码的字符串。 //Jscript

override

可选项。确定要应用于 codeString 中代码的安全权限的字符串。

eval 函数允许动态执行 JScript源代码。

传递给 eval 方法的代码执行时所在的上下文和调用 eval 方法时的上下文一样。请注意,在 eval 语句中定义的新变量或类型对于封闭程序是不可见的。

除非将字符串“unsafe”传递为第二个参数,否则,传递至 eval 方法的代码在受限安全上下文中执行。受限安全上下文禁止访问系统资源,如文件系统、网络或用户界面。如果代码试图访问这些资源,则会产生安全异常。

当 eval 的第二个参数为字符串“unsafe”时,传递给 eval 方法的代码在调用代码所在的安全上下文中执行。第二个参数是区分大小写的,因此,字符串“Unsafe”或“UnSAfE”不会重写受限安全上下文。

示例:

例如,下面的代码将变量mydate 初始化为测试日期或当前日期,这取决于变量 doTest 的值:

var doTest : boolean = true;

var dateFn : String;

if(doTest)

dateFn = "Date(1971,3,8)";

else

dateFn = "Date()";

var mydate : Date;

eval("mydate = new "+dateFn+";");

print(mydate);

该程序的输出为:Thu Mar 8 00:00:00 PDT 1971

eval用法

编辑

例子 1

在本例中,我们将在几个字符串上运用 eval(),并看看返回的结果:

eval("x=10;y=20;document.write(x*y)");

document.write(eval("2+2"));

var x=10;

document.write(eval(x+17));

输出:200

4

27

例子 2

看一下在其他情况中,eval() 返回的结果:

eval("2+3") // 返回 5

var myeval = eval; // 可能会抛出 EvalError 异常

myeval("2+3"); // 可能会抛出 EvalError 异常

可以使用下面这段代码来检测 eval() 的参数是否合法:

try { alert("Result:" + eval(prompt("Enter an expression:",""))); }catch(exception) { alert(exception);[1]

eval应用

编辑

ActionScript 中

eval 函数

eval(expression:Object) : Object

eval(expression:String) : Object

按照名称访问变量、属性、对象或影片剪辑。如果表达式是变量或属性,则返回该变量或属

性的值。如果表达式是对象或影片剪辑,则返回对该对象或影片剪辑的引用。如果无法找到

表达式中列举的元素,则返回 undefined。

在 Flash 4 中,eval() 用于模拟数组;在 Flash 5 或更高版本中,您应该使用 Array 类来模

拟数组。

在 Flash 4 中,您还可以使用 eval() 动态地设置和检索变量值或实例名称。然而,也可以

使用数组访问运算符 ([]) 来实现这一点。

在 Flash5 或更高版本中,不能使用 eval() 动态设置和检索变量值或实例名称,因为不能在

等式的左侧使用 eval()。例如,将代码

eval ("var" + i) = "first";

替换为:

this["var"+i] = "first"

或者替换为:

set ("var" + i, "first");

可用性:Flash Player 5 ; ActionScript 1.0

VBS中

让我们来比较一下eval的威力

第一种情况,不用eval:

dim x

msgbox x

输入3+2 ,出来还是3+2

第二种情况,用上eval:

dim x

x=Inputbox("")

msgbox eval(x)

输入3+2,会出来5

输入6*9,会出来54

输入sqr(49),会出来7

( sqr()是开平方函数 )

很神奇啊!

PHP中

eval — 把字符串作为PHP代码执行

说明

mixedeval( string $code_str )

把字符串code_str作为PHP代码执行。 除了其他,该函数能够执行储存于数据库文本字段内的PHP代码。

使用eval()时需注意几个因素:注意字符必须是有效的PHP代码,包括结尾的分号,以不至于解释器在eval()之后退出。并且正确地转义code_str中的东西。你可以使用一个PHP闭合标签来混合输出HTML和PHP代码。

同时需注意eval中的变量会被保留在之后的主脚本中。

参数

code_str需要被执行的字符串code_str不能包含 PHP Opening tags。

return语句会立即中止当前字符串的执行。

返回值

eval()返回NULL,除非在执行的代码中return了一个值,函数返回该值。 如果在执行的代码中有一个解析错误,eval()返回FALSE,之后的代码将正常执行。无法使用 set_error_handler() 捕获eval()中的解析错误。

范例

Example #1eval()例子 - 简单的文本合并

$string = 'cup';

$name = 'coffee';

$str = 'This is a $string with my $name in it.';

echo $str. "\n";

eval("\$str = \"$str\";");

echo $str. "\n";

?>

以上例程会输出:

This is a $string with my $name in it.This is a cup with my coffee in it.

Note: 因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。

Tip和直接将结果输出到浏览器一样,可使用输出控制函数来捕获当前函数的输出,然后(例如)保存到一个 string 中。

Note:

如果在执行的代码中产生了一个致命的错误(fatal error),整个脚本会退出。

Linux 中

shell中的eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描无法实现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。

例如

$:cat ext

count=3

cmd=echo

cmd="$cmd \$$count"

ext 11 22 33

此时cmd=" echo $3"

eval $cmd 等价于 "echo 33 "

参考资料

1.

JavaScript eval() 函数

.w3school[引用日期2015-08-26]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值