共享学习Jquery源码的一些东西
jQuery.extend({
 
expando  :  生成唯一JQ字符串(内部)
noConflict()  :  防止冲突
----------------------------------------------
isReady  :  DOM是否加载完(内部)
        $(function(){});
        rootjQuery.ready();=>$(doucment).ready(function(){});=>$().ready();=>jQuery.ready.promise().done(fn);//延迟对象==>$.ready();
        DOMContentLoaded
        window.onload=function(){};
----------------------------------------------
readyWait  :  等待多少文件的计数器(内部)
----------------------------------------------
holdReady()  :  推迟DOM触发
            a.js={<script>alert(1)</script>}
$.holdReady(true);
$.getScript("a.js",function(){
    $.holdReady(false);
});
alert(2);
---------------------------------------
ready()  :  准备DOM触发
--------------------------------------------
isFunction()  :  是否为函数
            alert(typeof alert);
IE8以前返回Object
---------------------------------
isArray()  :  是否为数组
          Array.isArray();
--------------------------------------
isWindow()  :  是否为window
          alert($.isWindow(window));=>true
          window作用:1.全局对象
                                   2.浏览器窗口
---------------------------------------
isNumeric()  :  是否为数字 
          alert(typrof 123);=>true
          alert(typeof NaN) ;=>true
           alert(isNumeric(123));=>true
            alert(isNumeric(NaN));=>false
            isFinite(Number.MAX_VALUE+1);//有限数字=>false
            isFinite(123123123);=>true    
---------------------------------------
type()  :  判断数据类型
        var a="Hello";=>String    
        var b=[];=>Array
        var c={};=>json
        var d=new Date();=>date
    alert({}.toString.call([]))=>[object array]
原生的js区分不了json,date,数组
--------------------------------------------
isPlainObject()  :  是否为对象自变量    
   ( 1.不是Object 2.Dom节点 3.Window)=>false;
   (constructor&&Object.prototype,"isprototype");
    var obj={};=>true
    var obj= new Object();=>true;
    var obj=[];=>false;
----------------------------------------------
isEmptyObject()  :  是否为空的对象
            var obj=null;
            var obj={};
            var obj=[];
            function aaa(){}
            var obj=new  aaa();
            $.isEmptyObject(obj)=>true
    ++++++++++++++++++++
        for(name  in  object ){}
        系统自带得 循环不到
----------------------------------------------
error()  :  抛出异常
          $.error("这是错误");
           便签
-----------------------------------------------
parseHTML()  :  解析节点
var str ="<li></li><li></li><script><\/script>";       
 $.parseHTML(str,documrnt,true);==>[<li>,<li>,<script>]
$.parseHTML(str,documrnt,false);==>[<li>,<li>]
$("<li></li>")=>$.parseHTML();
核心创建DOM:jQuery.buildFragment();
-----------------------------------------------
parseJSON()  :  解析JSON
var str='{"name":"Hello"}';
$.parseJSON(str);支持严格json格式
JSON.parse和eval;
JSON.stringify();【Json=>String】
------------------------------------------------
parseXML()  :  解析XML
<script>
var xml = "<rss version='2.0'><channel><title>RSS Title</title></channel></rss>",
xmlDoc = $.parseXML( xml ),
$xml = $( xmlDoc ),
$title = $xml.find( "title" );
// Append "RSS Title" to #someElement
$( "#someElement" ).append( $title.text() );
// Change the title to "XML Title"
$title.text( "XML Title" );
// Append "XML Title" to #anotherElement
$( "#anotherElement" ).append( $title.text() );
</script>
new DOMParser().parseFromString(data,"text/xml");支持IE8以上
<parsererror>错误信息</parsererror>
ActiveXObject低版本的XML解析
-------------------------------------------------
noop()  :  空函数
    noop:function(){},
--------------------------------------------------
globalEval()  :  全局解析JS
function test() {
jQuery.globalEval( "var newVar = true;" );//把局部变量转成全局变量
var newVar = true;//局部变量
}
test();
alert( newVar );
 
function test() {
  var val=eval;
   val("var a=1");
   window.eval("var a=1");
}
alert(1);
----------------------------------------------
camelCase()  :  转驼峰(内部)
margin-left  -> maginLeft
 
IE :  -ms-transform ->msTransfrom
其他 :-moz-transform ->MozTransfrom
 
----------------------------------------------
nodeName()  :  是否为指定节点名(内部)
$(function(){
    $.nodeName(document. documentElement,'html');=>true
    $.nodeName(document. body,'html');=>false
});
 
----------------------------------------------
each()  :  遍历集合
var arr=[1,2,3,4];
var json={"id":"111","name":"zhangsan "}
 
this ->{0:,1:,length:2}
$.each(arr,function(i,value){
       alert(value);
});
----------------------------------------------
trim()  :  去前后空格
IE 低版本需要自己写正则
var str ="  Hello    ";
alert("("+str+")");

alert("("+$.trim(str)+")");

----------------------------------------------
makeArray()  :  类数组转真数组
var str="Hello";
$.makeArray(str); -> [Hello]
----------------------------------------------
inArray()  :  数组版indexOf
var arr={'a','b','c','d'}
$.inArray('b',arr);  -> 2
$.inArray('w',arr);  -> -1
----------------------------------------------
merge()  :  合并数组
if : $.merge(['a','b'],['c','d']); ->['a','b','c','d']
else: $.merge(['a','b'],{0:'c',1:'d'}); ->{0:'a',1:'b',2:'c',3:'d'}
          $.merge({0:'a',1:'b',length:2},{0:'c',1:'d'}); -> {0:'a',1:'b',2:'c',3:'d',length:4}
          $.merge({0:'a',1:'b',length:2},['c','d']); -> {0:'a',1:'b',2:'c',3:'d',length:4}
----------------------------------------------
grep()  :  过滤新数组
var arr=[1,2,3,4];
arr=$.grep(arr,function(n,i){
    return n>2;
}); ->[3,4]
arr=$.grep(arr,function(n,i){
    return n>2;
},true); ->[1,2]
----------------------------------------------
map()  :  映射新数组
var arr=[1,2,3,4];
arr=$.map(arr,function(n){
        return n+1;
}); ->[2,3,4,5]
 
----------------------------------------------
guid  :  唯一标识符(内部)    
事件函数关联,查找和关联
----------------------------------------------
proxy()  :  改this指向
function show(n1,n2){
alert(n1);
alert(n2);
alert(this);
}
$.proxy(show,document)(3,4); ->3,4
$.proxy(show,document,3,4)(); ->3,4
$.proxy(show,document,3)(4); ->3,4
简化的写法:
var obj={
    show : function(){
        alert(this);
    }
}
$.proxy(obj.show,obj) ===$.proxy(obj,"show")
----------------------------------------------
access()  :  多功能值操作(内部)
$().css();  $().attr()  get/set
$(function(){
    $("#div1").css("background")//get
    $("#div1").css("background","yellow")//set
    $("#div1").css({background : "yellow" , width : "300px"}) //多值set
});
<div id='div1' style="width:100px;height:100;background:red"></div>
 
----------------------------------------------
now()  :  当前时间
$.now();//1970.1.1距今的毫秒数
now : Date.now 低版本的不支持
----------------------------------------------
swap()  :  CSS交换(内部)
$(function(){
    $("#div1").css("width")//jquery  ->100
     $("#div1").get(0).offserWidth;//源生display:none  ->0
});
<div id='div1' style="width:100px;height:100;background:red;display:none"></div>
实现方式 : 把值去掉,获取值,添加样式
 
----------------------------------------------
});
(819).jQuery.ready.promise = function(){};  监测DOM的异步操作(内部)
$().ready();
---------------------------------------------------------
function isArraylike(){}  类似数组的判断(内部)
function show(){
    arguments.isArraylike();
}
show('a','b','c','d');
 
------------------------------------------------------------
rootjQuery=jQuery(document);
 
 
 
 

jQuery扩展工具方法的更多相关文章

  1. jQuery常用工具方法

    前面的话 jQuery提供一些与元素无关的工具方法,不必选中元素,就可以直接使用这些方法.如果理解原生javascript的继承原理,那么就能理解工具方法的实质.它是定义在jQuery构造函数上的方法 ...

  2. jquery 扩展插件方法

    分析插件jquery.countdown.js (function($) { $.fn.countdown = function(options) { // default options var d ...

  3. jquery的工具方法isFunction/isArray/isWindow/isNumeric/isPlainObject/isEmptyObject

    isFunction : 是否函数 isArray : 是否数组 isWindow : 是否window isNumeric : 是否数字 type : 数据类型方法 isPlainObject : ...

  4. jquery 常用工具方法

    inArray(value, array [, fromIndex ])方法类似于原生javascript的indexOf()方法,没有找到匹配元素时它返回-1.如果数组第一个元素匹配参数,那么$.i ...

  5. jQuery 第九章 工具方法之插件扩展 $.extend() 和 $.fn.extend()

    $.extend() $.fn.extend() -------------------------------------------------- $.extend() 插件扩展(工具方法) jq ...

  6. Java程序猿的JavaScript学习笔记(9—— jQuery工具方法)

    计划按例如以下顺序完毕这篇笔记: Java程序猿的JavaScript学习笔记(1--理念) Java程序猿的JavaScript学习笔记(2--属性复制和继承) Java程序猿的JavaScript ...

  7. jQuery工具方法

    目录 常用工具方法 判断数据类型的方法 Ajax操作 $.ajax 简便写法 Ajax事件 返回值 JSONP 文件上传 参考链接 jQuery函数库提供了一个jQuery对象(简写为$),这个对象本 ...

  8. 使用jquery获取url及url参数的方法及定义JQuery扩展方法

    1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javascript的基础的window对象,并没有用jquery的知识. 2.jquery获取 ...

  9. jQuery源代码 解析一 工具方法

    1. 外层沙箱以及命名空间$ 几乎稍微有点经验前端人员都这么做,为了避免声明了一些全局变量而污染,把代码放在一个"沙箱执行",然后在暴露出命名空间(可以为API,函数,对象): 2 ...

随机推荐

  1. 【Spark学习】Apache Spark集群硬件配置要求

    Spark版本:1.1.1 本文系从官方文档翻译而来,转载请尊重译者的工作,注明以下链接: http://www.cnblogs.com/zhangningbo/p/4135912.html 目录 存 ...

  2. http协议中的Content-Type

    今天对http协议中的Content-Type有所理解了 它的主要功给我的感觉,还是在前台(客户端)给服务器传输数据时,描述这个数据的格式. 比如,我只传一个表单数据,但这个表单中只有文本,没有其它的 ...

  3. webSocket vnc rfb

  4. linux内核地址mapping

    linux内核采用页式存储管理,虚拟地址空间划分成固定大小的页面,由MMU(memory manager unit)在运行时将virtual address mapping to (或者说是变化成)某 ...

  5. 转载-MySQL 加锁处理分析

    MySQL 加锁处理分析 发表于 2013 年 12 月 13 日 由 hedengcheng 1    背景    1 1.1    MVCC:Snapshot Read vs Current Re ...

  6. 5个Xcode开发调试技巧

    转自Joywii的博客,原文:Four Tips for Debugging in XCode Like a Bro    1.Enable NSZombie Objects(开启僵尸对象) Enab ...

  7. codeforces 625C K-special Tables

    C. K-special Tables time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. Arduino Due, Maple and Teensy3.0 的 W5200性能测试

    开源平台中以太网连接方案里W5100是众所周知的,W5200正在此领域越来越受欢迎.这个测试结果是在Arduino Due(Atmel CortexM3-84Mhz), Maple(ST Cortex ...

  9. plsql developer导入导出数据库方法

    导出步骤: 1 tools ->export user object 选择选项,导出.sql文件 2 tools ->export tables-> Oracle Export 选择 ...

  10. C#中Action和Func的使用

    在日常使用delegate时,我们通常需要显示声明一个名为XXX的委托,而在使用Action委托时,不必显示定义一个封装无参数过程的委托. 比如正常使用delegate: using System; ...