logo头像

求知若渴,虚心若愚

jQuery - jQuery源码学习 - 定义一些变量和函数(21行-94行)(二)

core_toString

1
core_toString = class2type.toString
  • 转为字符串

core_hasOwn

1
core_hasOwn = class2type.hasOwnProperty
  • 用来判断某个对象是否含有指定的属性的

core_trim

1
core_trim = core_version.trim,
  • 首尾去空格

core_pnum

  • 数字匹配,包含正负数,科学计数,小数点等等

core_rnotwhite

  • 空格分割元素

rquickExpr

  • 前半部分匹配标签,后半部分匹配内容(#id形式)
  • 防止XSS注入,通过location.hash

rsingleTag

  • 匹配一个独立的标签

rmsPrefix

  • 匹配ie的前缀ms
1
2
3
4
// 正常情况下,css样式,浏览器私有前缀规则转换
-webkit-margin-left : webkitMarginLeft
// 但是ie非常特殊
-ms-margin-left : MsMarginLeft

rdashAlpha

  • 找到横杠-然后字符,转为大写,必须-ms再转为Ms,带数字也转化,比如-2d,-3d等

fcamelCase

  • 注意函数中的参数 letter 对应的是 ‘([a-z]|[0-9])’ 匹配的字母或数字,转换连字符为驼峰式
1
2
3
4
fcamelCase = function( all, letter ) {
// toUpperCase:把字符串转换为大写,返回一个新的字符串
return letter.toUpperCase();
},

completed

  • DOM加载成功触发的方法
  • 关键字:jQuery.ready()
1
2
3
4
5
completed = function() {
document.removeEventListener( "DOMContentLoaded", completed, false );
window.removeEventListener( "load", completed, false );
jQuery.ready();
};

DOMContentLoaded

  • 就是dom内容加载完毕
  • 当文档中没有脚本时,浏览器解析完文档便能触发 DOMContentLoaded 事件
  • 如果文档中包含脚本,则脚本会阻塞文档的解析,而脚本需要等位于脚本前面的css加载完才能执行。
  • 在任何情况下,DOMContentLoaded 的触发不需要等待图片等其他资源加载完成。
  • DOMContentLoaded兼容问题:

    • 支持DOMContentLoaded事件的,就使用DOMContentLoaded事件
    • IE6、IE7不支持DOMContentLoaded,但它支持onreadystatechange事件,该事件的目的是提供与文档或元素的加载状态有关的信息。
    • 更低的ie还有个特有的方法doScroll, 通过间隔调用:document.documentElement.doScroll(“left”);
    • 可以检测DOM是否加载完成。 当页面未加载完成时,该方法会报错,直到doScroll不再报错时,就代表DOM加载完成了。该方法更接近DOMContentLoaded的实现
支付宝打赏 微信打赏

赞赏是对我们的肯定!