首先来个最简单的理解
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的值. |
看完上面的基本理解eval是什么含义了吧