jquery源码笔记(二): 定义的变量,

jquery中定义的变量,1、防止污染全局变量,2、自定义变量有助于压缩优化,3、有助于后期维护

rootjquery ,  jquery的根目录jquery(document),

core_strundefined= typeof undefined,      core_strundefined 存的就是string类型的 undefined

判断a是不是不存在: 一般判断方法,有2种:

window.a ==undefined;        //只使用这个  可能在IE中不行,
      typeof window.a  =="undefined";    //IE10以下 适合使用这个方法,所以这个是全兼容的

将window中的属性 存储在变量中,有利于 压缩

   location = window.location,
    document = window.document,
    docElem = document.documentElement, //html标签

防止冲突,jquery被别人使用了,被重写了

_jQuery = window.jQuery,

防止冲突,$被别人使用了,被重写了

_$ = window.$,

对类型进行判断:

class2type = {},    {‘[Obejct String]‘:‘string‘,‘[Object Array]‘:‘array‘ }

一个空数组

core_deletedIds = [],

数组的方法名 、字符串的方法名  保存在变量中

    core_concat = core_deletedIds.concat,
    core_push = core_deletedIds.push,
    core_slice = core_deletedIds.slice,
    core_indexOf = core_deletedIds.indexOf,
    core_toString = class2type.toString,
    core_hasOwn = class2type.hasOwnProperty,
    core_trim = core_version.trim,    

正则表达式:

// Used for matching numbers   匹配数字: 正数、负数、科学计数法
    core_pnum = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,

    // Used for splitting on whitespace   用空格 分开单词
    core_rnotwhite = /\S+/g,

    // A simple way to check for HTML strings
    // Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
    // Strict HTML recognition (#11290: must start with <)
    rquickExpr = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,   匹配 标签<>和 id

    // Match a standalone tag
    rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,   匹配一个成对的空标签  <p></p>   <div></div> 

    // Matches dashed string for camelizing
    rmsPrefix = /^-ms-/,   IE中的前缀 -ms 转成: Ms
    rdashAlpha = /-([\da-z])/gi, 转大小写   -left  转成 Left

转驼峰标识的 回调函数

fcamelCase = function( all, letter ) {
        return letter.toUpperCase();
    },

DOM加载成功 触发的方法

completed = function() {
        document.removeEventListener( "DOMContentLoaded", completed, false );
        window.removeEventListener( "load", completed, false );
        jQuery.ready();
    };
时间: 2024-10-18 08:51:18

jquery源码笔记(二): 定义的变量,的相关文章

jQuery源码笔记——二

jQuery选择这样返回对象 var jQuery = function( selector, context ) { return new jQuery.fn.init( selector, context );//从jQuery.fn里调用的方法 }; jQuery.fn = jQuery.prototype = { //这里jQuery.prototype,目前可以删除. init: function(){ console.log("初始化完成"); return this; }

jquery 源码笔记:

1.使用了jquery,但是觉得了解 jquery的源码才能 更容易知道怎么使用,所以在网上找了一些 jquery的源码 笔记 还有看了 妙味课堂 的 一部分视频,现在写一些总结. 一.  jquery的 总体架构: 1.jquery 有良好的对外接口,  window.jQuery = window.$ = jQuery; 现在 是 通过jquery 2.0.3 源码的分析: (21,94)  21—94行, 定义了一些变量和函数,   jQuery = function(); (96,283

jquery源码分析(二)——结构

再来复习下整体架构: jQuery源码分析(基于 jQuery 1.11 版本,共计8829行源码) (21,94)                定义了一些变量和函数jQuery=function(){} (96,280)        给jQuery添加一些方法和属性,jQuery.fn=jQuery.prototype(285,347)        extend:        jQuery的一些继承方法        更容易进行后续的扩展                       

转载:Pixhawk源码笔记二:APM线程

  转自:新浪@WalkAnt Pixhawk源码笔记一:APM代码基本结构,参见: http://blog.sina.com.cn/s/blog_402c071e0102v59r.html 这里,我们对 APM 线程进行讲解.如有问题,可以交流[email protected].新浪@WalkAnt,转载本博客文章,请注明出处,以便更大范围的交流,谢谢. 第三部分 APM线程 详细参考:http://dev.ardupilot.com/wiki/learning-ardupilot-threa

jquery源码笔记(四): jquery.extend=jquery.fn.extend

extend()  方法,   合并两个或更多对象的属性到第一个对象中,jQuery后续的大部分功能都通过该函数扩展, 当参数只有一个对象时,则将对象的属性添加到jQuery对象中. jquery 中扩展插件的形式:  2种方法 $.extend({ //扩展工具方法 aaa:function(){ alert(10); }, bbb:function(){ alert(20) } }); $.fn.extend({ //扩展jquery实例方法 aaa:function(){ alert("f

问答形式阅读jQuery源码(二)

这一篇笔者主要以设计的角度探索jQuery的源代码,很多人说jQuery设计过于个人主义话,其实这样说是有一定偏见的,因为好的设计是可通用的.共通的,jQuery这么好用,我们怎么能说他的设计是个人主义呢?好了开始正题. 提问:jQuery是怎么暴露自己的api的? 任何框架其实都是个门面模式,外部与框架的通信必须通过一个统一的门面,而这个门面就是我们说所的api.因此学习任何框架的源码,我们都要弄清两件事: 1.哪些是私有方法,因为私有方法是框架自己内部使用,是他不希望暴露给外围用户的,这些方

深入剖析PHP7内核源码(二)- PHP变量容器

简介 PHP的变量使用起来非常方便,其基本结构是底层实现的zval,PHP7采用了全新的zval,由此带来了非常大的性能提升,本文重点分析PHP7的zval的改变. PHP5时代的ZVAL typedef struct _zval_struct { zvalue_value value; // (长度16字节,具体看下面的分析) zend_uint refcount__gc; // unsigned int (长度4字节) zend_uchar type; // unsigned char (长

jquery源码笔记(三): jquery.prototype的一些方法 和属性 init

jquery.fn = jquery.prototype = { 添加实例属性和方法, jquery: 版本, constructor: 修正指向问题 init(): 初始化 和 参数管理 selector:存储选择字符串 length: this 对象的长度 toArray(): 转数组 get(): 转原生集合 pushStack(): jquery 对象入栈 each()  :  便利集合 ready():DOM加载的接口 slice(): 集合的截取 first(): 集合的第一项 la

javascript 跟Aaron大神学习jquery源码笔记

/* 通过new操作符构建一个对象,一般经过四步: A.创建一个新对象 B.将构造函数的作用域赋给新对象(所以this就指向了这个新对象) C.执行构造函数中的代码 D.返回这个新对象 最后一点就说明了,我们只要返回一个新对象即可. 其实new操作符主要是把原型链跟实例的this关联起来,这才是最关键的一点, 所以我们如果需要原型链就必须要new操作符来进行处理.否则this则变成window对象了. */ /* var $$ = ajQuery = function(selector) { t