易截截图软件、单文件、免安装、纯绿色、仅160KB

深入认识javascript中的eval函数

深入认识javascript中的eval函数
分类:技术专区时间:2007-5-21 15:04:58作者:supNate  
         发现为本文起一个合适的标题还不是那么容易,呵呵,所以在此先说明下本文的两个目的:
(1)介绍javascript中的eval函数的用法
(2)如何在函数内执行全局代码
►先来说eval的用法,内容比较简单,熟悉的可以跳过。
eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。
需要特别注意的是对象声明语法“{}”并不能返回一个值,需要用括号括起来才会返回值,简单示例如下:
var code1='"a" + 2';    //表达式
var code2='{a:2}';      //语句
alert(eval(code1));     //->'a2'
alert(eval(code2));     //->undefined
alert(eval('(' + code2 + ')'));    //->[object Object]
        可以看到,对于对象声明语句来说,仅仅是执行,并不能返回值。为了返回常用的“{}”这样的对象声明语句,必须用括号括住,以将其转换为表达式,才能返回其值。这也是使用JSON来进行Ajax开发的基本原理之一。在例子中可以清楚的看到,第二个alert语句输出的是undefined,而第三个加了括号后输出的是语句表示的对象。
            ►现在来说本文的重点,如何在函数内执行全局代码。为了说明这个问题,先看一个例子:
var s='global';    //定义一个全局变量
function demo1(){
    eval('var s="local"');
}
demo1();
alert(s);    //->global
         很好理解,上面的demo1函数等价于:function demo1(){var s='local';},其中定义了一个局部变量s。
        所以最后的输出是global并不是什么奇怪的事情,毕竟大家都能很清楚的区分局部变量和全局变量。
        仔细体会一下,可以发现ev


相关文档:

网页屏蔽键盘按键javascript脚本


function keyDown(){
  //屏蔽鼠标右键、Ctrl+n、shift+F10、F5刷新、退格键
   //alert("ASCII代码是:"+event.keyCode);
   if ((window.event.altKey)&&
    ((window.event.keyCode==37)||   //屏蔽 Alt+ 方向键 ←
     (w ......

Javascript之浏览器对象


浏览器对象
 
 
浏览器对象就是网页和浏览器本身各种实体元素在JavaScript程序中的体现。这样的浏览器对象主要包括以下几个
●  Navigator:管理者当前使用浏览器的版本号、运行的平台以及浏览器使用的语言等信息。
●  Windows对象:处于整个从属表的最顶级位置。每一个这样的对象代表一个浏览 ......

一些比较常见的Javascript框架简介

Dojo
      一个强大的面向对象javascript框架。
      主要由三大模块组成:Core、Dijit、DojoX。
      Core提供 Ajax,events,packaging,CSS-based querying,animations,JSON等相关操作API。
      Dijit ......

javascript 的perl类型的正则表达式

(1)var recat = new RegExp("cat");    //简单定义。
        var recat = new RegExp("cat","gi");//g->global,i->case insensitive.
        var recat = /cat/gi;                       ......

javascript操作复选框函数

javascript操作复选框函数
function CheckAll(form) {//全选
for (var i=0;i    var e = form.elements[i];
    if (e.name != 'chkall')
       e.checked = form.chkall.checked;
   }
}
function checkSelect()//判断是否有选 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号