javascript 里面eval表示的是啥函数呀?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 里面eval表示的是啥函数呀?相关的知识,希望对你有一定的参考价值。

这个是放<head>之间的<style type="text/css">
<!--
body

background-color:#FFFFFF;
font-family: Arial;
color:#1E6841


#startingMsg

position:absolute;
background: #FFFFFF;
HEIGHT:10;s
TOP:70;
text-align: middle;
font-family:Arial;
color:#000000;
left:200

-->
</STYLE>

这个是放body之间的<SCRIPT LANGUAGE="javascript">
messages=new Array(5)
messages[0]="<font color=red><b>这是一种很好的主页制做工具! </b></font>"
messages[1]="<font color=red><b>它可以制做出很多意想不到的效果!</b></font>"
messages[2]="<font color=red><b>它可以为你主页的图片增添光彩!</b></font>"
messages[3]="<font color=red><b>它可以帮你做图表!</b></font>"
messages[4]="<font color=red><b>它可以帮你处理文字!</b></font>"
messages[5]="<font color=red><b>按下去,看看吧!</b></font>"
var browser;
if (document.all)
layerRef='document.all.'
styleRef='.style.'
changeMessages=".innerhtml=messages[num]"
closeit=""
browser=true

else

alert("此效果在Netscape浏览器中不能实现!");

function mover(num)

if(browser)
eval(layerRef+'startingMsg'+changeMessages)
eval(layerRef+'startingMsg'+closeit);




function mout(num)
if(browser)
eval(layerRef+'startingMsg'+changeMessages);
eval(layerRef+'startingMsg'+closeit);


</SCRIPT>

<table width="760" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><a href="http://www.hongen.com/pc/homepage/dreamweaver/dw0101.htm" onMouseOver="mover(0)" onMouseOut="mout(0)">dreamweaver</a>
<p> <a href="http://www.hongen.com/pc/homepage/fireworks/firejq.htm" onMouseOver="mover(2)" onMouseOut="mout(2)">fireworks</a>
<p> <a href="http://www.hongen.com/pc/homepage/flashsl/flashjq.htm" onMouseOver="mover(1)" onMouseOut="mout(1)">flash</a>
<p> <a href="http://www.hongen.com/pc/oa/excel2k/ex2k0101.htm" onMouseOver="mover(3)" onMouseOut="mout(3)">excel</a>
<p> <a href="http://www.hongen.com/pc/oa/word2k/wd2k0101.htm" onMouseOver="mover(4)" onMouseOut="mout(4)">word</a>
</td>
</tr>
</table>
<div id="startingMsg" style="left: 204px; top: 72px; width: 414px; height: 10px">想学什麽,就按下去吧!</div>
详情见http://www.hongen.com/pc/homepage/javascript/sample/menudexplain.htm

eval可以将字符串生成语句执行,和SQL的exec()类似。

eval的使用场合是什么呢?有时候我们预先不知道要执行什么语句,只有当条件和参数给时才知道执行什么语句,这时候eval就派上用场了。举个例子:

我们要做一个function(),功能是输入网页中两个个对象的名称,然后程序就将这两个对象的值联接起来输出。

function output(a,b)

var tmpa,tmpb;
tmpa=document.all.a.value;
tmpb=document.all.b.value;
document.write(tmpa+tmpb);


output('input1','input2');

这样你执行的时候就会提示错误“document.all.a不是对象”以及“document.all.b不是对象”。原来javascript把a和b当成对象名称了,怎样能让javascript把a里面的值作为对象名称呢?这时候就要用eval了,把代码改成这样:

function output(a,b)

var tmpa,tmpb;
tmpa=eval("document.all."+a+".value");
tmpb=eval("document.all."+b+".value");
document.write(tmpa+tmpb);


output('input1','input2');

这样javascript就会先取出a,b的值,然后和前面的document.all.以及后面的.value组合运行,于是就可以
顺利取出input1和input2的值,我们的目的达到了。
参考技术A eval是好东西啊。把javascript代码转换成ecmascript代码。

以上是关于javascript 里面eval表示的是啥函数呀?的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 中 eval 的预期目的是啥? [复制]

JavaScript里面this的意思是啥?有几种意思?几种用法?

javascript中this.element 指的是啥,分别举例说明下.类似this.age,this.name这我倒是知道.thanks.

javascript里面的字面量是啥意思啊?

关于eval()的使用问题

Ajax中的eval函数的用法