`
y1d2y3xyz
  • 浏览: 257145 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

jquery源码-jquery变量定义

阅读更多
源码 15~93行,jquery变量定义
var
	// A central reference to the root jQuery(document)
	rootjQuery,//定义jquery根节点

	// The deferred used on DOM ready
	readyList,//Deferred 的存储用到

	// Use the correct document accordingly with window argument (sandbox)
    //下面的几段都是把JS本身的对象和方法做了本地的定义,这么做能减少每次调用全局的对象/方法,把当做juquery域内对象或方法,能提升性能,这是框架常用的写法
	document = window.document,
	location = window.location,
	navigator = window.navigator,

	// Map over jQuery in case of overwrite
	_jQuery = window.jQuery,

	// Map over the $ in case of overwrite
	_$ = window.$,

	// Save a reference to some core methods
	core_push = Array.prototype.push,
	core_slice = Array.prototype.slice,
	core_indexOf = Array.prototype.indexOf,
	core_toString = Object.prototype.toString,
	core_hasOwn = Object.prototype.hasOwnProperty,
	core_trim = String.prototype.trim,

	// Define a local copy of jQuery(定义一份本地的jquery的拷贝)
	jQuery = function( selector, context ) {
		// The jQuery object is actually just the init constructor 'enhanced'
		return new jQuery.fn.init( selector, context, rootjQuery );
	},

	// Used for matching numbers(匹配各类型的数字表示法)正/负/整型/浮点/科学计数法
	core_pnum = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,

	// Used for detecting and trimming whitespace
	core_rnotwhite = /\S/,//匹配非空白字符
	core_rspace = /\s+/,//匹配多个空白字符

	// Make sure we trim BOM and NBSP (here's looking at you, Safari 5.0 and IE)
	rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,

	// A simple way to check for HTML strings
	// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)
     //匹配含html标签字符串或#id形式的字符串
	rquickExpr = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,

	// Match a standalone tag (匹配标签符) 如 <a></a> 或 <br />
	rsingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/,

	// JSON RegExp
	rvalidchars = /^[\],:{}\s]*$/,//匹配JSON字符串所包含的有效字符
	rvalidbraces = /(?:^|:|,)(?:\s*\[)+/g,
	rvalidescape = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,//匹配回车换行换页制表符或中文字符
	rvalidtokens = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,//匹配非回车换行的字符串/bool/null/数值

	// Matches dashed string for camelizing
	rmsPrefix = /^-ms-/,
	rdashAlpha = /-([\da-z])/gi,

	// Used by jQuery.camelCase as callback to replace()
    //转换为大写,这里有个疑问是为什么加了一个不需要的参数all?
	fcamelCase = function( all, letter ) {
		return ( letter + "" ).toUpperCase();
	},

	// The ready event handler and self cleanup method
    //定义浏览器docuemnt的加载完成事件快捷方式
	DOMContentLoaded = function() {
		if ( document.addEventListener ) {
			document.removeEventListener( "DOMContentLoaded", DOMContentLoaded, false );
			jQuery.ready();
		} else if ( document.readyState === "complete" ) {
			// we're here because readyState === "complete" in oldIE
			// which is good enough for us to call the dom ready!
			document.detachEvent( "onreadystatechange", DOMContentLoaded );
			jQuery.ready();
		}
	},

	// [[Class]] -> type pairs
	class2type = {};
分享到:
评论

相关推荐

    jQuery源码分析(1.7)

    ### jQuery源码分析关键知识点详解 #### 一、前言 在深入了解jQuery源码之前,有必要先简要介绍一下jQuery的基本情况及其对JavaScript编程领域的重要意义。jQuery作为一个轻量级、功能丰富的JavaScript库,在Web...

    jquery-source-code-1:jquery源码-jquery source code

    jquery源码分析(2.0.3版本) 大概内容大纲 (功能(){ (21,94)定义了一些变量和函数jQuery = function(){} (96,284)给JQ对象添加一些方法和属性 (285,347)扩展名:JQ的继承方法 (349,817)jQuery....

    精通JavaScript+jQuery电子书+源码-部分1

    本资源为“精通JavaScript+jQuery电子书+源码-部分1”,这是一个学习JavaScript和jQuery的宝贵资料。JavaScript作为浏览器中的解释型语言,主要用于实现客户端的动态效果、数据验证、页面交互等功能。而jQuery是一个...

    jquery源码 带格式

    #### 核心变量定义 - `rootjQuery`: 提供了一个对整个文档的根jQuery对象的引用。 - `readyList`: 用于处理DOM ready事件的递延对象(deferred object)。 - `document`: 当前窗口的文档对象模型(DOM)。 - `...

    jQuery源码解读

    同时,jQuery 还定义了一个 `_$` 变量,用于保存之前的 `$` 变量引用,以防覆盖原有的 `$` 函数。 jQuery 使用原型链实现对象的扩展和方法继承。`jQuery.fn` 和 `jQuery.prototype` 是同一个对象,它们包含了一系列...

    jQuery源码分析-03构造jQuery对象-源码结构和核心函数

    在进行jQuery源码分析的过程中,我们了解到jQuery对象是通过内部函数`jQuery.fn.init`构造的,其方法和属性则通过原型链继承自`jQuery.fn`,这是jQuery能够提供丰富且灵活DOM操作方法的基石。通过这种方式,即使不...

    JavaScript+jQuery程序设计 源码

    1. **JavaScript基础**:这包括变量声明、数据类型(如字符串、数字、布尔、对象和数组)、控制结构(如条件语句、循环)、函数定义与调用,以及作用域和闭包等概念。理解这些基础知识是掌握JavaScript的关键。 2. ...

    基于jQuery开发的javascript模板引擎-jTemplates

    `jquery-jtemplates_uncompressed.js`是未压缩的源码版本,开发者可以通过阅读源码了解jTemplates的内部实现机制,如模板解析、数据绑定和DOM操作等。 ### 6. CSS样式 `TemplateCSS.css`可能是为示例模板提供的...

    jquery源码_详细中文注释.pdf

    ### 关于《jquery源码_详细中文注释.pdf》的知识点解析 #### 一、文档简介及背景 《jquery源码_详细中文注释.pdf》是一份由Auscar lin(林辉华)编写的关于jQuery源码的中文注释文档。此文档的主要目的是帮助中文...

    JQuery源码详细中文注释!

    JQuery源码以一个自执行匿名函数的形式存在,这意味着该函数定义完成之后就会立即执行。这样的方式可以创建一个闭包,从而保护JQuery的代码不与外部环境发生变量名等冲突。同时,自执行函数确保了JQuery库能够在页面...

    jquery1.43源码分析(核心部分)[收集].pdf

    `return (window.jQuery = window.$ = jQuery)`这一行代码是将jQuery对象绑定到全局的`jQuery`和`$`变量上,使得用户可以方便地使用这两个符号进行操作。在Java相关的代码片段中,我们可以看到类似的对象赋值操作,...

    商业源码-编程源码-MVC Music Store源码.zip

    12. **部署(Deployment)**:源码可能还涉及如何将应用程序部署到IIS服务器,配置环境变量,以及处理生产环境中的性能优化和监控。 通过研究这个MVC Music Store源码,开发者可以学习到ASP.NET MVC框架的实战应用,...

    格子图片源码-JS调用

    掌握JavaScript的基础语法、变量、数据类型、控制结构、函数等是理解这个源码的前提。 2. **DOM操作**: Document Object Model(DOM)是HTML和XML文档的结构化表示,JavaScript通过DOM可以访问和修改网页内容。在...

    基于jquery tabs切换源码

    首先,"基于jQuery tabs切换源码"指的是使用jQuery库来创建一个可切换的选项卡式界面。在网页开发中,这种组件常用于展示不同内容板块,用户可以通过点击各个选项卡在不同内容之间切换,提高用户体验和页面导航效率...

    爱心源码-love-master.zip

    此外,还可能通过JavaScript或者jQuery来实现更复杂的音乐控制,如自动播放、循环播放、音量调节等。 在前端开发中,CSS和JavaScript的结合使用是常见实践。CSS可以用来进行页面的美化,而JavaScript则可以增加动态...

    jquery源码分析

    在源码层面,jQuery的核心是`jQuery`函数,这个函数是通过立即执行函数表达式(IIFE)定义的,确保了其中定义的变量和函数不会污染全局作用域。`jQuery`函数内部实现了大量的工具方法和扩展,这些方法和扩展构成了...

    JQuery1.4 文档及源码

    - **缓存 jQuery 对象**: 通过变量存储常用的选择器结果,减少多次查询 DOM 的开销。 5. **学习与进阶** - **插件开发**: 学习如何使用 `$.fn.extend()` 创建自定义方法,扩展 jQuery 功能,构建自己的插件。 - ...

    jQuery源码解析

    总结来说,jQuery源码解析系列将带领我们逐步揭开这个前端库的神秘面纱,从整体结构、接口设计到具体实现,深入理解其设计思想和实现细节。无论是对于提高开发效率,还是对于个人技能提升,都有极大的帮助。通过学习...

    jQuery源码分析-01总体架构分析

    《jQuery源码分析-总体架构解析》 在深入探究jQuery的源码之前,我们首先要理解其总体架构的设计理念。jQuery以其高效、易用的特性深受开发者喜爱,而这背后离不开其精心设计的架构。本文将围绕jQuery的核心构造...

Global site tag (gtag.js) - Google Analytics