29 th

September,2010 | JavaScript

JavaScript中eval()函数的一些问题

Tags: ,

首先先来简单介绍一下eval()的用法,它还是比较容易理解的,相信很多朋友都已经熟悉。eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。

另外,因此自己在项目实践过程中,因为解析JSON格式数据的时候,发现对于对象声明语法“{}”的并不能返回一个值,需要用括号括起来才会返回值。
例如:

  1. var oo='"abc" + 123';
  2. var xx='{a:123}';
  3. alert(eval(oo));     //abc123
  4. alert(eval(xx));     //undefined
  5. alert(eval('(' + xx + ')'));    //object对象

因此,在获取Json字符串的时候如果要将其解析为对象,必须用括号括住,才能将其转换为表达式,并返回其值。

Interesting? … Continue Reading… »

25 th

September,2010 | JavaScript

This.作用域.闭包

ppk on javascript

JavaScript是个有点神奇的语言,不过它的一些独有的特性往往让我们初学者感到费解。ThisJavascript语言的一个关键词。不过它到底是指什么呢?很多人都会认为this指的是当前对象。当然,这样理解是没错的,但是在有些情况下仍然会有些问题。在此,我搜集了一些资料,重新学习并整理一下,希望能借此来更好的理解this在JS中的工作方式和使用方法。

  1. var test = function(){
  2.      alert(this);
  3. }
  4. test();
  5. new test();

运行以上代码,你会发现test()和new test()的运行结果是不一样的,test()指向的是Windows对象而new test()才是指向test对象,为什么会有两种不同的运行结果?其实这里就涉及到一个变量作用域的问题,而变量作用域同时又牵涉到闭包(Closure)这个JS特性了,正因为闭包的存在,理解变量作用域就显得非常重要。 Interesting? … Continue Reading… »

22 nd

May,2008 | JavaScript

解决多个window.onload引起的冲突

Tags: , , ,

我们在网页中可能要插入多个JS,可是如果在两个JS的代码中都使用了 window.onload,可能会出现两个JS不兼容的现象。可能就显示其中一个JS,而另一个就被忽略了,也就是同一个网页中不能出现两个 window.onload。这次本人在编写网页的时候就遇到了这个问题,因为如果只用一个JS就显得有点单调,如果重新编写JS代码又感觉太麻烦。这时我们就要用window.attachEvent和window.addEventListener来解决问题了。 Interesting? … Continue Reading… »

02 nd

February,2008 | JavaScript

SWFObject ——让你页面上的Flash显示更完美

最近看到了好几个Flash网站,head代码里都加载了一个 swfobject.js,这个JS究竟有什么作用呢?眼下正在做一个Web页面,说不定刚好可以派上用场。于是,好奇的搜索了一下。原来这是老外开发的,用于在HTML中方面插入Adobe Flash媒体资源(*.swf文件)的独立、敏捷的JavaScript模块,该模块中的JavaScript脚本能够自动检测PC、Mac机器上各种主流浏览器对Flash插件的支持情况。目前最新的版本是1.5,这里可以下载最新版的SWFObject:

http://blog.deconcept.com/swfobject/swfobject_source.js

Interesting? … Continue Reading… »

22 nd

September,2007 | JavaScript

Yahoo的Ajax工具包

Yahoo在前段时间推出了yui的ajax工具包,同时yahoo发表了一系列的ajax设计模式. Yahoo的这些工具包是Yahoo在收购了多个web2.0网站后推出的ajax工具包,代码的注释也写的很好,让人容易理解,同时文档也是相当的丰富和详尽。yui的组件也在不断的增加中,Yahoo为yui设了一个yahoo用户组,里面的邮件很活跃,问的问题基本都有人回答,而且比较细致和具体。
Interesting? … Continue Reading… »