JS eval()函数

eval() 函数  
    
   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  
   
这个看起来似乎有点傻,其实可以做出很有趣的事。比如使用 eval 你可以根据用户的输入直接创建函数。  
   
这可以使程序根据时间或用户输入的不同而使程序本身发生变化,通过举一反三,你可以获得惊人的效果。  
   
在实际中, eval 很少被用到,但也许你见过有人使用 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="http://a.com/a.gif" name="parrot"] 
   [img src="http://b.com/b.gif" name="cheese"] 
   [code] 
   
请注意象这样的几行语句:  
   [code] 
   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.  有点害怕?用不着。其实这相当有用,人们也经常使用它。  
   
我们常常在 Javascript 中间到 Eval 这个函数,  
   
有些人觉得这个函数很奇怪,可以把一些字符串变的功能很强大  
   
在我们需要将普通的字符串转变成具体的对象的时候,就会用到这个函数  
    
   eval 
函数对作为数字表达式的一个字符串进行求值,其语法为:  
    
   eval(expr) 
    
   
此处  expr  是一个被求值的字符串参数。如果该字符串是一个表达式, eval  求该表达式的值;如果该参数代表一个或多个 JavaScript  语句,那么  eval  执行这些语句。 eval  函数可以用来把一个日期从一种格式(总是字符串)转换为数值表达式或数字
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值