JavaScript、jQuery 检测某 function 是否存在

JavaScript 中检测某 function 是否存在的方法为:

if(typeof $form.validate == 'function') {
	console.log('该 function 存在');
} else {
	console.log('该 function 不存在');
}

例如: 需要检测一个 MD5 方法是否存在:

Posted on 2012-03-31

JavaScript 面向对象基础知识

虽然 JavaScript 本身是没有的概念,但它仍然有面向对象的特性,虽然和一般常见的面向对象语言有所差异。

简单的创建一个对象的方法如下:

function myObject() {

};

JavaScript 中创建对象的方法一般来说有两种:函数构造法和字面量法,上面这种属函数构造法。下面是一个字面量法的例子:

Posted on 2012-03-20

jQuery & Ajax & JSONP

借助于 XMLHttpRequest,浏览器可以在整个页面不刷新的情况下与服务端进行交互,这就是所谓的 AjaxAsynchronous JavaScript and XML)。Ajax 可以为用户提供更为丰富的用户体验。

Ajax 请求由 JavaScript 驱动,通过 JavaScript 代码向 URL 发送一个请求,待服务端有响应时会触发一个回调函数,可以在这里回调函数里面处理服务端返回的信息。由于整个发送请求和响应的过程是异步的,所以在此期间页面中其它 Javascript 代码仍然继续执行,不会中断。

Posted on 2012-03-15

JavaScript 中的闭包是怎么回事

伟大的爱因斯坦同志说过:“如果你无法向一个 6 岁小孩解释清楚某问题,那说明你自己都没整明白”。然而,当我向一个 27 岁的朋友解释什么是闭包时,却彻底失败了。

这原本是国外某哥们儿在 Stack Overflow 上对 JavaScript 闭包所提出的问题。不过既然此问题是在 Stack Overflow 提出的,当然也会有很多高手出来解答,其中有些回答确实是经典,如下面这个:

Posted on 2012-03-12

jQuery 性能优化最佳实践

不要每次都在循环中访问数组的 length 属性,应在循环开始之前就将其缓存:

var myLength = myArray.length;

for (var i = 0; i < myLength; i++) {
    // do stuff
}
Posted on 2012-03-12