javascript中的eval
javascript中eval详细理解
2009-02-27 14:58
2008-04-12 00:29
首先来个最简单的理解
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是什么含义了吧
然后看下面的理解
稍微晋级一点点,用到了DOM中替换图片的例子
在Javascript中Eval函数的使用?
【eval()函数】
来源:http://blog.csdn.net/ianc/archive/2006/05/29/761094.aspx
JavaScript有许多小窍门来使编程更加容易。
其中之一就是eval()函数,这个函数可以把一个字符串当作一个JavaScript表达式一样去执行它。
举个小例子:
var the_unevaled_answer = "2 + 3";
var the_evaled_answer = eval("2 + 3");
alert("the un-evaled answer is " + the_unevaled_answer + " and the evaled answer is " + the_evaled_answer);
如果你运行这段eval程序, 你将会看到在JavaScript里字符串"2 + 3"实际上被执行了。
所以当你把the_evaled_answer的值设成 eval("2 + 3")时, JavaScript将会明白并把2和3的和返回给the_evaled_answer。
这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用eva
相关文档:
实例如下:javascript.html文件
<html>
<head>
<title>JavaScript验证</title>
</head>
<script language='JavaScript'>
......
声明:
function person(name, country)
{
this.name = name;
this.country = country;
}
实例化对象:
var theauthor = new person('Daniel', 'U.S.A.');
引用:
function sayHello(objPerson)
{
return "Hello " + objPerson. ......
一,javascript的流程控制语句
if(x==null) 或 if(typeof(x) =='undefined')可以简单写if(!x)
注意:在javascript中,false,null,undefined,0,""均是false
即 var x;
此时 if(x==null)
if(typeof(x)=='undefined')均为真
二,switch语句
switch(表达式)   ......
在使用getElementById时又遇到了“document.getElementById('...')为空或不是方法”的错误,alert()了一下发现获取的值为null,于是找了半天搜索到了这个这个defer。
在javascript标签中加上 defer 等于在页面完全在入后再执行,相当于 window.onload ,但应用上比 window.onload  ......
【前言】好文章,就是要慢慢研究,所以先转过来存着~
1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键
<table border oncontextmenu=return(false)><td>no</table> 可用于Table
2. <body onselectstart="return false"> 取消选取、防止复制
3. onpaste="return false" ......