易截截图软件、单文件、免安装、纯绿色、仅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,js获得客户端计算机IP或名称方法

1、rcbdyctl
view plaincopy to clipboardprint?
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html;   
charset=gb2312">  
<title>JS获取客户端IP</title>  
</head>  
<b ......

一个通用的JavaScript分页


一个通用的JavaScript分页
1.JavaScript代码
Pagination=function(id)
{
var totalNum=0;
var maxNum=10;
var pageUrl="";
var breakpage = 5;
var currentposition = 0;
var breakspace = 2;
var maxspace = 4;
var currentpage=1;
var perpage=10;
var id =id;
this.initPage = function( ......

Javascript之浏览器对象


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

JavaScript中toGMTString函数

JavaScript中toGMTString函数方法是返回一个日期,该日期用格林威治标准时间 (GMT) 表示并已被转换为字符串。使用方法:
dateObj .toGMTString()
JavaScript中toGMTString函数方法已经过时,之所以仍然提供这个方法,只是为了提供向后的兼容性。推荐改用 toUTCString 方法。
toGMTString 方法返回一个 String 对象,此 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号