美文网首页
06-jQuery原理

06-jQuery原理

作者: 七分之二十四 | 来源:发表于2019-10-07 16:06 被阅读0次

    jQuery基本结构

    • jQuery的本质是一个闭包
    • jQuery为什么使用闭包来实现:为了避免多个框架的冲突
    • jQuery如何让外界访问内部定义的局部变量:window.xxx = xxx;
    • jQuery为什么要给自己传递一个window参数:为了方便后期压缩代码和提升查找的效率
    • jQuery为什么要给自己接收一个undefined参数:为了方便后期压缩代码,IE9以下的浏览器undefined可以被修改,为了保证内部使用的undefined不被修改,所以需要接收一个正确的undefined

    jQuery入口函数

    • 传入 '' null undefined NaN 0 false,返回空的jQuery对象
    • 字符串:
      • 代码片段:会将创建好的DOM元素存储到jQuery对象中返回
      • 选择器:会将找到的元素存储到jQuery对象中返回
    • 数组:会将数组中存储的元素依次存储到jQuery对象中返回
    • 除上述类型以外的:会将传入的数据存储到jQuery对象中返回

    真伪数组转换

    • apply和call方法的作用
      • 专门用于修改方法内部的this
      • call(对象,参数1,参数2,...);
      • apply(对象,[数组]);
    • 真数组转伪数组:[].push.apply(obj,arr);
    • 伪数组转真数组:[].slice.call(obj);

    函数处理

    • onload事件会等到DOM元素加载完毕,还会等到资源也加载完毕才会执行

    • DOMContentLoaded事件只会等到DOM元素加载完毕就会执行回调(不支持IE8及以下)

      //判断DOM是否加载完毕
      if (document.readyState == "complete") {
          fn();
      }else if (document.addEventListener) {
          document.addEventListener("DOMContentLoaded",function () {
              fn();
          })
      }else {
          document.attachEvent("onreadystatechangge",function () {
              if(document.readyState == "complete") {
                  fn();
              }
          })
      }
      

    相关文章

      网友评论

          本文标题:06-jQuery原理

          本文链接:https://www.haomeiwen.com/subject/alibjctx.html