|
首先是语法介绍
microsoft jscript档案
eval 方法 检查 JScript 代码并执行.
eval(codeString)
必选项 codestring 参数是包含有效 JScript 代码的字符串值。这个字符串将由 JScript 分析器进行分析和执行。
说明 eval 函数允许 JScript 源代码的动态执行。例如,下面的代码创建了一个包含 Date 对象的新变量 mydate :
eval("var mydate = new Date();"); 传递给 eval 方法的代码执行时的上下文和调用 eval 方法的一样.
在vbscript中 参看http://www.asp.org.cn/vbscript/functions/2006-4-23/eval.htm
执行sql查询中的用途 http://www.asp.org.cn/vbscript/2007-1-24/eval_0.htm
eval()函数,可以把一个字符串当作一个JavaScript表达式一样去执行它。
我们常常在Javascript中间到Eval这个函数,有些人觉得这个函数很奇怪,可以把一些字符串变的功能很强大在我们需要将普通的字符串转变成具体的对象的时候,就会用到这个函数。eval 函数对作为数字表达式的一个字符串进行求值,其语法为www.asp.org.cn:
==============================
Eval 函数功能:
先解释Javascript代码,然后在执行它用法:Eval(codeString)codeString是包含有Javascript语句的字符串,在eval之后使用Javascript引擎编译。
eval() 获取难以索引的对象
文档对象模型(DOM)的问题之一是:有时你要获取你要求的 对象简直就是痛苦。例如,这里有一个函数询问用户要变换 哪个图象:变换哪个图象
你可以用下面这个函数:
function swapOne() { var the_image = prompt("change parrot or cheese",""); var the_image_object;
if (the_image == "parrot") { the_image_object = window.document.parrot; } else { the_image_object = window.document.cheese; }
the_image_object.src = "ant.gif"; }
连同这些image标记:
<img src="stuff3a/parrot.gif" name="parrot"> <img src="stuff3a/cheese.gif" name="cheese">
请注意象这样的几行语句:
the_image_object = window.document.parrot;
它把一个鹦鹉图象对象敷给了一个变量。虽然看起来有点 儿奇怪,它在语法上却毫无问题。但当你有100个而不是两个 图象时怎么办?你只好写上一大堆的 if-then-else语句,要是 能象这样就好了:
function swapTwo() { var the_image = prompt("change parrot or cheese",""); window.document.the_image.src = "ant.gif"; }
不幸的是, JavaScript将会寻找名字叫 the_image而不是你所希 望的"cheese"或者"parrot"的图象,于是你得到了错误信息:” 没听说过一个名为the_image的对象”。
还好,eval能够帮你得到你想要的对象。
function simpleSwap() { var the_image = prompt("change parrot or cheese",""); var the_image_name = "window.document." + the_image; var the_image_object = eval(the_image_name); the_image_object.src = "ant.gif"; }
如果用户在提示框里填入"parrot",在第二行里创建了一个字 符串即window.document.parrot. 然后包含了eval的第三 行意思是: "给我对象window.document.parrot" - 也就是 你要的那个图象对象。一旦你获取了这个图象对象,你可以把 它的src属性设为ant.gif. 有点害怕?用不着。其实这相当有 用,人们也经常使用它.www.asp.org.cn。
用js的eval方法计算表达式
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>www.asp.org.cn</title> <script language=javascript> function fTxtKeyDown(obj) { if(event.keyCode == 32) { event.returnValue=false; //空格键 var sRet; try { sRet = eval(obj.value); } catch(e) { } if (isNaN(sRet)) { alert("计算式输入错误"); } else { obj.value=sRet; } } }
</script> </head>
<body> <font size="2">输入表达式(如:3*2-4)后,按空格键得到结果 try</font><br> <br> <input type=text onkeydown="fTxtKeyDown(this);" size="42"> </body>
</html> (出处:源码网)
|