jquery源码分析(2) JQuery的基本变量和函数1

本文将分析(21 , 94) 定义了一些变量和函数 jquery = function(){};


分析的具体部分的源码(1-30)  【因为包含注释可能行号有所误差 (>^ω^<)


/*!
 * jQuery JavaScript Library v2.0.3
 * http://jquery.com/
 *
 * Includes Sizzle.js
 * http://sizzlejs.com/
 *
 * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors
 * Released under the MIT license
 * http://jquery.org/license
 * Downloads By http://www.veryhuo.com
 * Date: 2013-07-03T13:30Z
 */
(function( window, undefined ) {

// Can't do this because several apps including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if
// you try to trace through "use strict" call chains. (#13335)
// Support: Firefox 18+
//"use strict";
var
	// A central reference to the root jQuery(document)
	rootjQuery,

	// The deferred used on DOM ready
	readyList,

	// Support: IE9
	// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
	core_strundefined = typeof undefined,

1./*!
 * jQuery JavaScript Library v2.0.3   // 版本号
 * http://jquery.com/
 *
 * Includes Sizzle.js  //这是一个具体选择器的实现,可以单独引用这个类库实现选择器的功能
 * http://sizzlejs.com/
 *
 * Copyright 2005, 2013 jQuery Foundation, Inc. and other contributors  //以下是版权信息不赘述
 * Released under the MIT license
 * http://jquery.org/license
 * Downloads By http://www.veryhuo.com
 * Date: 2013-07-03T13:30Z    
 */


2.

//匿名函数自知型

(function( window, undefined ) {  //此处引用了两个对象window, undefined ,在这里即使不传window一样可以使用window.xxx 但是基于两点必须传window 

1) window总在作用域链的最顶端,若直接在函数体内直接调用window会影响程序效率(即查找速度) 将window设为局部变量可以加快查找速度

2)在压缩版本中 可以将局部window设置为短变量 如e  例:(function(e,undefined)


undefined是因为在IE中 全部变量的undefined会在不同版本浏览器中有不同的表现形式

如 

var undefined = 10 ; 

在IE9中 undefined对象输出undefined

在低版本ie中则输出10


// Can't do this because several apps including ASP.NET trace
// the stack via arguments.caller.callee and Firefox dies if
// you try to trace through "use strict" call chains. (#13335)
// Support: Firefox 18+
//"use strict";    //如果使用的"use strict"则使用严格模式

例:

  "use strict"

  a = 10  //相当于定义了全局变量

  会报错


例2:

  

"use strict"

  var a = 010  // 8进制数

  会报错



var
// A central reference to the root jQuery(document)
rootjQuery,    //相当于jQuery的根目录  866行 有这样的代码rootjQuery = jQuery(document); 其实就是用jQuery选择到document元素, 使用一个rootjQuery可以将jQuery(document)压缩成一个字符


// The deferred used on DOM ready
readyList,  //和DOM加载有关 挖坑,以后再填


// Support: IE9
// For `typeof xmlNode.method` instead of `xmlNode.method !== undefined`
core_strundefined = typeof undefined,  //判断存不存在

       //若判断一个字符串a存不存在

        //window.a  == undefined 和typeof window.a ==  'undefined'皆可 但是前者在ie9中存在一个XML判断时的BUG 若用后者则可以完美解决这个问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值