jQuery2.1.1源码分析一

用了2周,把jquery2.1.1版本的源码读了一遍,像得了感冒,头疼、恶心、没精神。。。

涉及javaScript基本知识点:

      工厂模式、闭包、正则表达式、引用类型(function、regExp、string、array)、块级作用域、

      DOM API、原型、数据基本类型、操作符(尤其布尔操作符)、函数(尤其是重载)

     边看源码边读JavaScript高级程序设计,发现自己的基础又忘记差不多了。。

涉及标准或设计模式:

    Promise/A、HTML4.01 HTML5、Selectors API Level 1、Selectors Level3

涉及开源项目:

    Sizzle JavaScript Selector Library

涉及模块化编程

    CommonJs、AMD、CMD

整体上来看,外层为一个自调用匿名函数(function(xx,xx){...}(xx,xx));内层为工厂模式,而jQuery多个模块也使用了工厂模式进行封装

关于jQuery模块,主要包括以下几个模块

      核心(init、extend)、Data、Callbacks、Deferred、Ajax、事件、Animation、Sizzle

jQuery充分利用了javaScript松散的语言特性。例如,Callbacks模块中,stack = !option.once && [],这个stack可能是布尔值或数组,

在fire方法中,根据其数据类型不同,进行不同的操作。

但是,各位大神所说的精妙只在读个别代码时,有所感觉。

总体来说,对jquery源码理解还不够深入,对各位大神说的抽象思维真真是没做到。

接下来,根据jquery书籍和网上资料,不断的去细读、精读源码,达到第一个小目标。

第二遍感受

js基础知识运用灵活,小技巧特别多;

浏览器兼容性问题,集中解决,只是在某些模块零散分布;

抽象思维非常强,逻辑严谨,少量代码,实现大量功能;

目前使用jQuery解决业务的水平,处于及格水平,看了源码,认为jQuery提供了很多其他的更高级、更优雅得解决业务问题的思路和方法;

梳理了知识结构,扩充技术知识面(正则表达式、ES5API、XSS),深入底层技术;

jquery源码分析笔记和示例地址https://github.com/respectable2007/jquery-source-code-explanation

原文地址:https://www.cnblogs.com/respect2017/p/9828735.html