自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 jQuery源码阅读(十四)---aJax 模块与异步队列联系

关于ajax,jQuery做了封装,并且考虑了很多浏览器兼容问题,以及跨域问题。当然,这种异步操作离不开我们之前分析的延迟对象。所以这一次,主要是对ajax模块中对于延迟对象的应用进行分析。$.ajax函数先来分析$.ajax()函数。 在这里,我必须贴一张图来展示下ajax源码的整体框架。此图引用于高云(jQuery技术内幕第13章) 上图清楚得描述了整个ajax过程中的一系列流程,同时是按照

2017-07-28 17:59:34 1132

原创 jQuery源码阅读(十三)---jQuery异步队列模块

上一篇博客分析了Callbacks实现原理,而在jQuery中,Ready函数的实现,异步队列以及队列模块都用到了Callbacks对象。jQuery.ready函数在前面已经做了整理,所以这篇博客主要是分析Deffered(异步队列)和jQuery中异步队列的应用。异步队列延迟对象(异步队列)是在回调对象的基础上实现的。这个延迟对象维护了三个列表:成功(done)回调函数列表,失败(fail)回调

2017-07-26 11:06:37 1026

原创 jQuery源码阅读(十二)---Callbacks回调对象

还记得jQuery源码阅读(一)的时候,整理了jQuery库的整体架构,主要分为三个模块: 入口模块、底层支持模块和功能模块,各个模块之间也是有关联的。 前面几篇博文分别分析了jQuery库的入口模块,最主要的是init方法的分析;还分析了jQuery底层支持模块中的工具方法,主要是通过jQuery.extend()方法来扩展jQuery静态方法的。底层支持模块中,出了工具方法之外,还有很多模块

2017-07-24 11:44:34 591

原创 jQuery源码阅读(十一)---each、map、grep、merge、makeArray、inArray解读

这两天都在看jQuery源码中的静态方法,上一篇博客介绍了类型检测这一类静态方法,这次主要对后面几个常用的方法进行分析。主要包括:each: function(){} map: function(){} grep: function()merge: function(){}makeArray: function(){}inArray: function(){}each、map

2017-07-20 17:42:47 511

原创 jQuery源码阅读(十)---jQuery静态方法分析

jQuery工具方法(静态方法)是通过jQuery.extend方法来挂在的,extend方法的源码实现在这篇博客中也有整理过。现在简单回顾下,当jQuery.extend中的参数为一个对象时,就是扩展插件的方式,也就是说里面的方法都会扩展到jQuery上。因此,jQuery工具方法就是这样实现的。jQuery.extend({ //里面可以扩展的方法 noConflict: fun

2017-07-19 11:30:52 1838

原创 jQuery源码阅读(九)---ready函数理解

在jQuery对象创建的时候,即init函数中,有处理这么一种参数情况,当selector为函数时,$(function(){ })表示跟$(document).ready(function(){ })是一样的情况。 源码是这样的:if(jQuery.isFunction(selector)){ //rootjQuery = $(document); return rootjQ

2017-07-17 21:24:09 819

原创 华为优招面试题---迷宫问题

昨天参加了华为优招,被问到一道算法题,当时,有点思路,记得不论是在人工智能课还是在算法课上,这些都有讲到过,然后想了好久,回答出来了不是一个最优解的答案。下来总结一下这道题的思路。题目有一个迷宫,里面有障碍物,最左上角是入口,右下角是出口,请找出一条路径可以走出迷宫。大致就像下面这个图(阴影部分表示有障碍物): 如何找到一条从入口通往出口的路径?思路当时的想法:按照我们走迷宫的思路一样,判断当前位

2017-07-15 11:53:40 4891 3

原创 jQuery源码阅读(八)---jQuery中的继承extend

今天看了jQuery源码中关于extend函数的部分,这部分就相当于jQuery继承,后面在整理的过程中说明如何继承。 还是跟之前的分析方法一样,要分析一个函数的实现,首先得知道函数是干什么的,它的功能是啥。extend方法应用扩展插件在jQuery的学习当中,我们学过如何去写一个插件,而且插件分全局插件和实例插件,即一种是直接挂载在jQuery上的,另一种是挂载在jQuery实例对象上的。 比

2017-07-10 17:51:25 585

原创 JavaScript 面向对象思想以及原型、继承

首先,回顾一下JavaScript 对象的概念。每个对象中封装了一些属性和方法,并且这一部分保存在堆内存中,而每个对象实例其实是一个句柄,也就是一个指针,指向堆内存中的那块数据,所以说,这是JavaScript的引用类型。我们创建对象有这么几种方法: 1. 对象字面值的方法:var person = { name : 'liu', age : 22, sayHello :

2017-07-10 09:13:21 275

原创 jQuery源码阅读(七)--init()遗留部分buildFragment()函数

在 jQuery源码阅读(五)—init函数中,已经分析了init函数逻辑的大头,即参数selector为字符串的形式,但这里边仍然有两个为深入看的方法,一个是当selector是复杂标签的形式时,调用的bildFragment()方法,另一个是当selector为各种选择器时,调Sizzle模块的find()方法。这一篇先来看buildFragment()函数的源码,分析该函数在处理参数为复杂标签

2017-07-09 15:14:54 325

原创 jQuery源码阅读(六)---jQuery实例方法解析

前面基本将jQuery入口模块中的jQuery创建(init函数)搞清楚了,在jQuery源码中,接下来是对一些jQuery实例对象方法的定义。 比如size //返回对象中元素个数toArray() //将jQuery对象转换为数组get() //获取到jQuery对象中对应位置的元素

2017-07-08 20:35:12 285

原创 jQuery源码阅读(五)---init函数

在jQuery源码阅读(二)里面,大体介绍了jQuery创建对象时如何创建的,并且对init函数里面的函数进行了梳理,但具体的逻辑还是没有彻底搞清楚,这一篇博客主要是对init函数的一个详细梳理。在理解init函数内部逻辑之前,我们先想想用$()和jQuery()来创建jQuery对象时,参数有哪些可能的情况?或者想想我们平时会用到哪些?这在jQuery源码阅读(二)里面也有说到,我们再来回顾一下:

2017-07-07 15:58:58 516

原创 华为模拟题第二题--Google校招笔试题

题目: 长度为n的数组乱序存放着0至n-1. 现在只能进行0与其他数的交换,完成以下函数 题目源由题目可以得知以下信息:有一个数组长度为n,里面的元素是从0到n-1不重复的数,并且是乱序的;有一个函数:这个函数实现的是:只能将数组中为0的数和为n的数进行交换最终的目的是将整个数组进行排序。换句话说,就是数组第i个位置的数为i,最后一个位置的数为n-1.拿最简单的来说:如何让最后一个位置是最

2017-07-06 16:39:19 1312

原创 jQuery源码阅读(四)--正则表达式

在jQuery源码中,运用了大量的正则表达式,一开始在看的时候真的是一头雾水,尽管已经看过了JS高程里面的正则表达式。今天,看了一篇深入理解正则表达式的文章,对正则表达式有了更深的认识,下面做一个回顾和总结。正则表达式基础JS正则表达式用来匹配字符串,即利用正则表达式来定一个规则,如果字符串符合这个规则,那么就可以匹配到。正则表达式的定义有两种方式:第一种:(推荐的)var reg = /[0-9]

2017-07-06 10:42:04 539

原创 jQuery源码阅读(三)--解决冲突noConflict()

今天一行行看jQuery代码,大体看下来,jQuery源码的顺序大概是这些内容:一些变量和函数,包括jQuery对象的创建jQuery.extend和jQuery.fn.extendjQuery.extend扩展的一些工具方法回调函数Callbacks,包括有add方法和fire方法延迟对象DeferredjQuery.support , jQuery功能检测jQuery 数据缓存,包

2017-07-05 17:24:23 476

原创 jQuery源码阅读(二)---初识init方法

上一篇博客大体了解了jQuery整个的架构,即分成jQuery入口模块,底层支持模块以及功能模块这三个大块,并且各个模块之间有一定的联系;下来主要理解了jQuery入口模块,即jQuery对象是如何创建的,其实真正创建的jQuery实例是由jQuery.fn.init()函数创建的,并且为了使得创建的每个对象实例都拥有jQuery对象的属性和方法,即所有jQuery对象共享一份属性和方法代码,这样可

2017-07-03 17:05:12 731

JavaScript小游戏之超级玛丽

利用JavaScript面向对象思想来实现一个小游戏

2016-12-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除