06-jQuery原理

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();
            }
        })
    }
    
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,177评论 0 3
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,417评论 0 7
  • PNG 有PNG8和truecolor PNG PNG8类似GIF颜色上限为256,文件小,支持alpha透明度,...
    hudaren阅读 5,688评论 0 0
  • 请参看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon阅读 12,217评论 2 19
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 5,288评论 0 2

友情链接更多精彩内容