入口函数的作用:等待页面加载完毕,有一个独立的作用域。

原生JS 和 jQuery 入口函数区别:

(1)JS的window.onload事件必须要等到所有内容,以及外部图片之类的文件加载完之后,才会去执行。

(2)JQuery入口函数是在所有标签加载完之后,就会去执行。

jQuery基本结构

jQuery是一个闭包

之前有写过闭包:Mr.J--JS学习(闭包及IIFE)

Mr.J--JS学习(闭包私有化)

(function test(){console.log("test");
})()

执行结果:test

对于下面的demo:

var num;
num = 10;
num = 20;
console.log(num);

执行结果一眼看出:20,后面的值会覆盖前面的值进行输出

jQuery为什么要使用闭包来实现?
          为了避免多个框架的冲突
jQuery如何让外界访问内部定义的局部变量
           window.xxx = xxx;

(function f1() {var num = 10;window.num = num;
})();
(function f2() {var num = 20;
})();
console.log(num);

对于上面的demo运行结果:

jQuery为什么要给自己传递一个window参数?
           为了方便后期压缩代码
           为了提升查找的效率

自己存在值使用自己的,不存在则在函数外部找

var value = 20;
function f3() {//var value = 10;console.log(value);
}
f3();

执行结果:20

var value = 20;
function f3() {var value = 10;console.log(value);
}
f3();

执行结果:10

jQuery为什么要给自己接收一个undefined参数?
           为了方便后期压缩代码

IE9以下的浏览器undefined可以被修改, 为了保证内部使用的undefined不被修改, 所以需要接收一个正确的undefined

undefined = 998;
console.log(undefined);

jQuery基本结构--demo

(function( window, undefined ) {var jQuery = function( ) {return new jQuery.prototype.init( );}jQuery.prototype = {constructor: jQuery}    jQuery.prototype.init.prototype = jQuery.prototype;window.jQuery = window.$ = jQuery;
})( window );

jQ入口函数传入不同参数得到的实例

传入 '' null undefined NaN  0  false

会返回一个空的jQuery对象给我们

console.log($());
console.log($(''));
console.log($(null));
console.log($(undefined));
console.log($(NaN));
console.log($(0));
console.log($(false));

传入html片段

会将创建好的DOM元素存储到jQuery对象中返回

console.log($('<p>1</p><p>2</p><p>3</p>'));

传入选择器

会将找到的所有元素存储到jQuery对象中返回

console.log($('li'));

传入数组

会将数组中存储的元素依次存储到jQuery对象中立返回

var arr = [1, 2, 3, 4, 5, 6];
console.log($(arr));

传入伪数组

会将数组中存储的元素依次存储到jQuery对象中立返回

var likeArr = {0:"yjk", 1:"33", 2:"male", length: 3};
console.log($(likeArr));console.log(typeof arr);console.log(typeof likeArr);console.log(arr.toString());console.log(likeArr.toString());console.log(({}).toString.apply(arr));

传入对象

会将传入的对象存储到jQuery对象中返回

function Person() {}
console.log($(new Person()));

传入DOM元素

会将传入的DOM元素存储到jQuery对象中返回

console.log($(document.createElement('div')));

传入基本数据类型

会将传入的基本数据类型存储到jQuery对象中返回

console.log($(123));console.log($(true));

总结:

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

Mr.J-- jQuery学习笔记(二十二)--入口函数相关推荐

  1. jQuery 学习笔记之十二 (选项卡)

    jQuery 实现的一个简单的选项卡. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &quo ...

  2. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

  3. Windows保护模式学习笔记(十二)—— 控制寄存器

    Windows保护模式学习笔记(十二)-- 控制寄存器 控制寄存器 Cr0寄存器 Cr2寄存器 Cr4寄存器 控制寄存器 描述: 控制寄存器有五个,分别是:Cr0 Cr1 Cr2 Cr3 Cr4 Cr ...

  4. 汇编入门学习笔记 (十二)—— int指令、port

    疯狂的暑假学习之  汇编入门学习笔记 (十二)--  int指令.port 參考: <汇编语言> 王爽 第13.14章 一.int指令 1. int指令引发的中断 int n指令,相当于引 ...

  5. OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器

    OpenCV学习笔记(十二):边缘检测:Canny(),Sobel(),Laplace(),Scharr滤波器 1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此 ...

  6. QT学习笔记(十二):透明窗体设置

    QT学习笔记(十二):透明窗体设置 创建 My_Widget 类 基类为QWidget , My_Widget.cpp 源文件中添加代码 #include "widget.h" # ...

  7. MATLAB学习笔记(十二)

    MATLAB学习笔记(十二) 一.数据插值 1.1 数据插值的计算机制 1.2 数据插值的matlab函数 二.曲线拟合 2.1 曲线拟合原理 2.2 曲线拟合的实现方法 三.数据插值与曲线拟合比较 ...

  8. Windows Workflow HOL学习笔记(十二):创建状态基工作流

    W indows Workflow HOL学习笔记(十二):创建状态基工作流 本文内容来自Microsoft Hands-on Labs for Windows Workflow Foundation ...

  9. 模电学习笔记(十二)——跨阻放大器

    模电学习笔记(十二) 跨阻放大器 跨组运算放大器是将电流信号转换成为电压信号,电流到电压增益基于反馈电阻. 设计目标: 输入 输出 带宽 电源 0A 100uA 0V 7V 20kHz 15V -15 ...

  10. Spring Cloud学习笔记【十二】Hystrix的使用和了解

    Spring Cloud学习笔记[十二]Hystrix的使用和了解 Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix是Net ...

最新文章

  1. 图解全球无人驾驶产业链:这些公司在主宰人类出行的未来
  2. Tomcat 之 tomcat安装和组件介绍
  3. nx set 怎么实现的原子性_【redis进阶(1)】redis的Lua脚本控制(原子性)
  4. win7重装系统后设置Python2.7环境
  5. Java学习之斐波那契数列实现
  6. javascript弹出窗口总结
  7. java常用的date类
  8. JAVA数据库宾馆住宿系统_java+数据库 宾馆客房管理系统
  9. 苹果弹出无法验证服务器身份sec,苹果iPhone弹出无法验证服务器身份怎么回事什么意思,怎么解决...
  10. OpenGL ES EGL eglCreateContext
  11. OPPO 数据湖统一存储技术实践
  12. 使用zabbix_sender发送文本
  13. 计算机想ping一下网络,电脑的Ping值和网络带宽之间有什么关系?
  14. 专升本英语——语法知识——高频语法——第五节 状语从句(时间状语从句-地点状语从句-原因状语从句-结果状语从句-条件状语从句-目的状语从句-让步状语从句-比较状语从句-方式状语从句)【学习笔记】
  15. 诈金花游戏单机版 附开源地址
  16. CF1612C Chat Ban
  17. vue显示农历_vue中通过时间转换农历得方法封装
  18. 直接分享5个T的网盘资源
  19. Springboot集成rabbitmq实现延时队列
  20. Kratos,RPC服务调用过程

热门文章

  1. html5支持哪媒体,html5 支持哪些媒体元素
  2. 收藏 | 10个重要问题概览Transformer全部内容
  3. 创新!谷歌大改Transformer注意力
  4. 重读经典:完全解析特征学习大杀器 ResNet
  5. 手把手教我班小姐姐学java之多态
  6. Pure Pursuit纯跟踪算法Python/Matlab算法实现
  7. java数组写99乘法表,Java 实现乘法口诀(99乘法表)
  8. java elementtext_java命名空间javax.xml.stream接口xmlstreamreader成员方法: getelementtext定义参考...
  9. qt 使用插件astyle_astyle使用基础教程
  10. vscode markdown_搭建 Markdown 舒适写作环境(VSCode,含扩展盘点)