摘要: 才华横溢的Stoyan Stefanov,在他写的由O’Reilly初版的新书《JavaScript Patterns》(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会是件很美妙的事情。具体一点就是编写高质量JavaScript的一些要素,例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读,以及更多。此摘要也包括一些与代码不太相关的习惯,但对整体代码的创建息息相关,包括撰写API文档、执行同行评审以及运行JSLint。这些习惯和最佳做法可以帮助你写出更好的,更易于理解和维护的代码,这些代码在几个月或是几年之后再回过头看看也是会觉得很自豪的。书 阅读全文
posted @ 2012-02-08 16:56 有梦就能实现 阅读(195) 评论(0) 推荐(0) 编辑
摘要: jQuery中提供/封装了许多工具类的方法,个人认为比较重要的有:parseJSON方法: parseJSON: function( data ) { //只处理字符串数据 if ( typeof data !== "string" || !data ) { return null; } // Make sure leading/trailing whitespace is removed (IE can't handle it) data = jQuery.trim( data ); // 优先使用本地方法处理,很多现代浏览器中提供了JSON对象用于处理JSON( 阅读全文
posted @ 2012-02-08 15:15 有梦就能实现 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 本文将分析jQuery对象操作相关方法(包括静态和实例方法):merge方法,代码如下: //此方法用于合并两个jQuery对象(因为jQuery对象中有length属性)或者数组, //这个方法非常简单,就是简单的追加第二个对象的属性到第一个对象上去 merge: function( first, second ) { var i = first.length, j = 0; if ( typeof second.length === "number" ) { for ( var l = second.length; j < l; j++ ) { first[ i+ 阅读全文
posted @ 2012-02-08 15:13 有梦就能实现 阅读(508) 评论(0) 推荐(0) 编辑
摘要: 前些日子忙东忙西(比如忙着玩星际之类的,坏笑ing),博客也闲着,闲着闲着居然闲挂掉了~哎~没关系,反正这博客也是我的私人笔记 本,没人看,也就无所谓,昨天刚刚恢复,想起得接着记笔记才行。废话少说,万一本文还有读者借鉴学习呢就浪费看官们的宝贵时间了,\(^o^)/~在历经四次分析之后,core.js文件中只剩下了零零星星一些方法,我把它们大致分为以下几类方法:类型判断相关方法,如isFunction,isArray等;对象操作相关方法,如merge,map等;实用工具方法,如parseJSON,parseXML等;其他内部方法,如access。本文将介绍判断类型相关的方法jQuery中公开了一 阅读全文
posted @ 2012-02-08 15:12 有梦就能实现 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 链式调用相对来说简单一点,只需要在每个实例方法的最后返回被操作的对象(一般来说即是this)即可,如下面的remove()方法所示:remove: function( selector, keepData ) { for ( var i = 0, elem; (elem = this[i]) != null; i++ ) { if ( !selector || jQuery.filter( selector, [ elem ] ).length ) { if ( !keepData && elem.nodeType === 1 ) { jQuery.cleanData( ele 阅读全文
posted @ 2012-02-08 14:44 有梦就能实现 阅读(532) 评论(0) 推荐(0) 编辑
摘要: 在网上下了一个jQuery 1.2.6的源码分析教程,看得似懂非懂,于是还是去github上下载源码,然后慢慢看源代码学习,首先来说说core.js这个核心文件吧。jQuery整体的基本架构说起来也并不复杂,但是要看明白还是要花一点功夫,core.js这个文件搭建起了jQuery的整个框架,该文件的基本内容我大致总结如下://将整个jQuery 对象作为一个外部接口var jQuery = (function(){var jQuery = function( selector, context ) { //当执行形如$("p")的代码时会new一个jQuery.fn.ini 阅读全文
posted @ 2012-02-08 14:38 有梦就能实现 阅读(648) 评论(0) 推荐(0) 编辑
摘要: 上次分析了extend方法的实现,而紧接着extend方法后面调用了jQuery.extend()方法(core.js 359行),今天来看看究竟core.js里为jQuery对象扩展了哪些静态方法。从源文件中看,默认的jQuery方法得有500多行,很多方法通用 性很强,因此在jQuery内部也同样作被相应实例方法所包装,一口气看完还是有点累~所以一个一个来看重要的方法。可能在jQuery初学者中接触到最重要的方法也是最常用的便是jQuery(document).ready(fn)方法了,ready方法也可以简写为$(fn),此方法用来在DOM树加载完成后但是内容(比如图片)并为加载完毕前触 阅读全文
posted @ 2012-02-08 14:35 有梦就能实现 阅读(506) 评论(0) 推荐(0) 编辑
摘要: 不得不说,jQuery现在的版本更新速度大有朝chrome看齐的趋势,看来chrome的版本更新价值观很有影响力,github上已经是 1.7版了,不过官方已发布依然是1.6.1,不过想来这些版本内核现在应该是很稳定了,所以学习的时候也不考虑那么多细节了,直接down最新版来啃!在分析core的基本框架的时候已经弄清了,jQuery的实例对象是通过new init方法来返回的,那么init方法便是jQuery的核心方法了,也是jQuery的对外接口jQuery()(即$())的内部实现,熟悉 jQuery的童鞋应该知道除了在构建对象时封装DOM元素为类数组的jQuery实例对象,jQuery( 阅读全文
posted @ 2012-02-08 14:34 有梦就能实现 阅读(836) 评论(0) 推荐(0) 编辑
摘要: jquery的html,val,text,attr平时使用很多,用户设置内容使用。现在学习一下使用方法。 先贴上一段Html代码<body> <form id="form1" action="#"> <select id="select1" name="test" multiple="multiple" style="height:100px"> <option>浙江</option> <option sele 阅读全文
posted @ 2012-02-07 11:32 有梦就能实现 阅读(1222) 评论(0) 推荐(0) 编辑
摘要: 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量。 var n=999; function f1(){ alert(n); } f1(); // 999另一方面,在函数外部自然无法读取函数内的局部变量。 function f1(){ var n=999;... 阅读全文
posted @ 2012-02-07 10:13 有梦就能实现 阅读(205) 评论(0) 推荐(0) 编辑