jq源码学习1_定义了一些变量和函数 jQuery = function(){};

// 1.定义了一些变量和函数 jQuery = function(){};
          var 
          rootjQuery,
          readyList,
          core_strundefined = typeof undefined,
    //把window下的一些操作进行变量存储
          location = window.location,
          document = window.document,
          docElem = document.documentElement,
    //把window下的一些操作进行变量存储
    //定义下面两个变量用来防止冲突
         _jQuery = window.jQuery,
         _$ = window.$,
    //定义下面两个变量用来防止冲突
    class2type = {},//跟类型判断有关
    core_deletedIds = [],//定义一个空数组
    core_version = "2.0.3",//存储jq的版本号
    core_concate = core_deletedIds.concat,//对数组下的(concat()方法通过合并(连接)现有数组来创建一个新数组)方法进行变量的存储
    core_push = core_deletedIds.push,//对数组下的(push() 方法(在数组结尾处)向数组添加一个新的元素)方法进行变量的存储
    core_slice = core_deletedIds.slice,//对数组下的(slice() 方法用数组的某个片段切出新数组。)方法进行变量的存储
    core_indexOf = core_deletedIds.indexOf,//indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置
    core_toString = class2type.toString,//toString() 方法可把数组转换为字符串,并返回结果。
    core_hasOwn = class2type.hasOwnProperty,//hasOwnProperty()方法返回一个布尔值,判断对象是否包含特定的自身(非继承)属性。
    core_trim = core_version.trim,//去掉字符串的前后空格
    jQuery = function(selector,context){//定义函数
      return new jQuery.fn.init(selector,context,rootjQuery);
    },
    core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,//此正则用来匹配数字
    core_rnotwhite = /\S+/g,//此正则用来匹配单词
    rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,//匹配标签或ID如<p>aaa或#div1
    rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,//匹配一个独立的空标签如<p></p>
    rmsPrefix = /^-ms-/,//IE下的驼峰式转法
    rdashAlpha = /-([\da-z])/gi,   //大小写的转化
    fcamelCase = function( all, letter ) {//转驼峰的回调函数
		return letter.toUpperCase();
    },
    completed = function() {//DOM加载成功触发的回调函数
		document.removeEventListener( "DOMContentLoaded", completed, false );
		window.removeEventListener( "load", completed, false );
		jQuery.ready();
	};
 // 1.定义了一些变量和函数 jQuery = function(){};

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery本质上就是用javascript代码写成的各种方法的集合。但是javascript本身不是已经提供了各种各样的方法和功能了吗?为什么还要再另外写一个库出来呢?原因其实很好猜,那肯定是我们要写的这个库比javascript提供的原生方法更好用了,对吧?恩,到这里我们似乎得到了一个基本需求:写一个比原生javascript提供的方法集更好用的库。这个需求的关键在于“更好用”三个字。怎么才是“更好用”呢? 我们知道一个原则:结构、表现、行为相分离。javascript是负责其中的“行为”的。谁的行为?网页元素的行为。什么样的行为?变化。也就是说,javascript是负责使网页元素发生变化的,对不对?那么要使网页元素发生变化要怎么做呢?很简单,只需要通过两步: 确定要让哪一个网页元素发生变化。 确定要使这个元素发生什么样的变化。 从上面两个步骤我们可以总结出javascript工作的基本流程: 选取目标元素 操作目标元素实现功能(使目标元素发生变化) 根据这个基本流程,对于上面“更好用”的疑问,我们就有了一个初步的比较具体的答案了:“更好用”指的是“更好的元素选择器”和“更好的功能方法集”。好了,到了这里,我们的需求就更加清晰了: ———————————————— 版权声明:本文为CSDN博主「IAmFineAndYou」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/software0017/article/details/80317348

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值