本释疑笔记是针对自己在看源码的过程中遇到的一些问题的解答,对大众可能不具有参考性,不过可以看看有没有你也不懂得地方,相互学习,相互进步。

1、函数init

   <div id="one"></div>
   str = "hello, <b>my name is</b> jQuery.",
html = $.parseHTML( str );
console.log(html);
var context={class:"classname"};
var t=jQuery.parseHTML(
"34534,<p>",
context && context.nodeType ? context.ownerDocument || context : document,
true
) ;
console.log(context && context.nodeType ? context.ownerDocument || context : document);
console.log(t);
console.log($("#one").nodeType);
console.log(jQuery.merge("23",t));

 2、pushStack函数

<div id="one"></div>
<div></div> console.log($("div").pushStack($("div")));
console.log($("#one").pushStack($("div")));

3、eq函数

<div id="one"></div>
<div></div>
<script>
console.log($("div"));
console.log($("#one"));
console.log($("div").eq(0));
console.log($("#one").pushStack($("div")));
</script>

 4、isPlainObject函数

var obj=function(){};

    var obj1=function(name){
this.name=name;
} var obj2={};
var obj3={name:1}
var nobj=new obj();
var nobj2=new obj1();
var obj4=new Object; console.log($.isPlainObject(nobj));//false
console.log($.isPlainObject(nobj2));//false
console.log($.isPlainObject(obj2));//true
console.log($.isPlainObject(obj3));//true
console.log($.isPlainObject(obj3));//true

可见只有采用{}和new Object创建的对象才可以被当做是isPlainObject。

5、expando

Math.random() 会产生一个小数点后有14位的小数。加上版本号,再加上小数点前的0,总共是18位。\D匹配任意非数字的字符。

6、attr,prop

不同之处总结如下:

  属性名可能不同,尽管大部分的属性名还是相似或一致的

  HTML属性值总是返回字符串,DOM属性值则可能是整型、字符串、对象,可以获取更多的内容

  DOM属性总是返回当前的状态(值),而HTML属性(在大多数浏览)返回的初始化时的状态(值)

  DOM属性只能返回固定属性名的值,而HTML属性则可以返回在HTML代码中自定义的属性名的值

  相对于HTML属性的浏览器兼容问题,DOM属性名和属性值在浏览器之间的差异更小,并且DOM属性也有标准可依

可以得出对.attr()和.prop()的使用建议如下

  优先使用.prop(),因为.prop()总是返回最新的状态(值)

  只有涉及到自定义HTML属性时使用.attr(),或者可以说,忘掉.attr()吧

7、jQuery.isXMLDoc()

该函数用于判断一个DOM节点是否位于XML文档中,或者其本身就是XML文档

该函数主要用于判断指定文档是一个XML文档还是一个HTML(或XHTML)文档。

该函数属于全局jQuery对象。

读jQuery源码释疑笔记2的更多相关文章

  1. 读jQuery源码释疑笔记

    本释疑笔记是针对自己在看源码的过程中遇到的一些问题的解答,对大众可能不具有参考性,不过可以看看有没有你也不懂得地方,相互学习,相互进步.  1.each的用法 之前对each的用法一直迷迷糊糊,这次终 ...

  2. 读jQuery源码释疑笔记3

    1.在jQuery.fn=jQuery.prototype中定义了方法:init, map, each , toArray, get, pushStack,   ready,  slice,first ...

  3. 读jQuery源码 - Deferred

    Deferred首次出现在jQuery 1.5中,在jQuery 1.8之后被改写,它的出现抹平了javascript中的大量回调产生的金字塔,提供了异步编程的能力,它主要服役于jQuery.ajax ...

  4. 读jQuery源码之整体框架分析

    读一个开源框架,大家最想学到的就是设计的思想和实现的技巧.最近读jQuery源码,记下我对大师作品的理解和心得,跟大家分享,权当抛砖引玉. 先附上jQuery的代码结构. (function(){ / ...

  5. jquery源码学习笔记三:jQuery工厂剖析

    jquery源码学习笔记二:jQuery工厂 jquery源码学习笔记一:总体结构 上两篇说过,query的核心是一个jQuery工厂.其代码如下 function( window, noGlobal ...

  6. 读jQuery源码有感

    读之前的预备工作: 1.基础的js知识,以及html和css知识,和正则表达式知识.可以参考妙味课堂的基础js,html和css大纲. 2.JavaScript核心指南的知识http://www.cn ...

  7. jquery源码学习笔记二:jQuery工厂

    笔记一里记录,jQuery的总体结构如下: (function( global, factory ) { //调用factory(工厂)生成jQuery实例 factory( global ); }( ...

  8. 读jQuery源码 - Callbacks

    代码的本质突出顺序.有序这一概念,尤其在javascript——毕竟javascript是单线程引擎. javascript拥有函数式编程的特性,而又因为javascript单线程引擎,我们的函数总是 ...

  9. 菜鸟的jQuery源码学习笔记(前言)

    前言 相信任何一名前端开发人员或者是前端爱好者都对jQuery不陌生.jQuery简单易用,功能强大,特别是拥有良好的浏览器兼容性,大大降低了前端开发的难度,使得前端开发变得“平易近人起来”.自从本人 ...

随机推荐

  1. python之基础1

    一.python介绍 介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字 ...

  2. Nvu

    在Jennifer Niederst Robbins的书<Learning Web design>(密码:v9i1)推荐软件Nvu 界面: Nvu tips:

  3. Python自动化开发 - Django基础

    本节内容 一.什么是web框架 二.MVC和MTV视图 三.Django基本命令 四.路由配置系统 五.编写视图 六.Template 七.ORM 一.什么是web框架 对于所有的web应用,本质上其 ...

  4. DXP 板层

    一)DXP-设置板层(D+K )在PCB编辑 Design->Layer Stack Manager(层管理) 1)快捷命令 D + K   进入么多层置管理器 2.鼠标右键 TopLayer- ...

  5. cxGrid的FilterRow默认自动匹配左边%而不是右边%

    /==============================================================================// 修改cxGrid的FilterRow ...

  6. .NET Core下开源任务调度框架Hangfire的Api任务拓展(支持秒级任务)

    HangFire的拓展和使用 看了很多博客,小白第一次写博客. 最近由于之前的任务调度框架总出现问题,因此想寻找一个替代品,之前使用的是Quartz.Net,这个框架方便之处就是支持cron表达式适合 ...

  7. MS SQL的某一数据库成了Single User模式

    数据库恢复失败,原来的数据却变成了 当尝试打开数据库的属性,即出现上面图片异常的信息. 正常来说,是可以打开数据库的属性 此刻,你可以运行SQL语句来解决: USE master; GO ALTER ...

  8. JavaScript 的 Async\/Await 完胜 Promise 的六

    参考:http://www.10tiao.com/html/558/201705/2650964601/1.html Node 现在从版本 7.6 开始就支持 async/await 了. 简介: A ...

  9. Mac 安装mongodb

    http://blog.csdn.net/u010311313/article/details/46948995 1.前往官网下载MongoDB压缩包 2.将下载好的压缩包解压,将解压出的文件夹下的内 ...

  10. postgresql-查看表大小

    drop table tablesize create table tablesize( phone int) create table tablesize( phone text) create t ...