A must-see for web beginners (pure dry goods)

JQ principle:

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

Jquery entry function test:

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

The role of apply and call methods:

         专门用于修改方法内部的this
         格式:
         call(对象, 参数1, 参数2, ...);
         apply(对象, [数组]);   

Conversion of authenticity array:

      伪数组转换成真数组:[].push.apply(真数组名,伪数组名);        
      真数组转换成伪数组:[].slice.call(真数组名);        
      slice()若什么都没有传,会将数组中的元素放到一个真数组中原样返回
      slice(start,end);用于返回数组中的指定元素,从开始到结束,包含开始,不包含结束

join(separator):

    将JS数组中的所有元素放入一个字符串中
    separator表示分隔符,默认为逗号

The difference between change and propertychange:

 change 事件在内容改变(两次内容有可能还是相等的)且失去焦点时触发;
 propertychange 事件却是实时触发,即每增加或删除一个字符就会触发。

Animation display, hide, switch, create:

显示动画:show(time,easing,fn);
隐藏动画:hide(time,easing,fn);
切换动画:toggle(time,easing,fn);
		slow历时600ms,fast历时200ms;
		easing:默认为swing表示弧线运动,缓动,先慢中间快后慢,也可以为linear,表示匀速
展开和收起动画:
    sideDown(time,easing,fn);展开动画				
    sideUp(time,easing,fn);收起动画				
    sideToggle(time,easing,fn);切换动画	
animate(obj,time,easing,fn)
  第一个参数: 接收一个对象, 可以在对象中修改属性
  第二个参数: 指定动画时长
  第三个参数: 指定动画节奏, 默认就是swing
  第四个参数: 动画执行完毕之后的回调函数
  可以在对象中修改属性时注意:
    	设置宽度高度时width:"200" width:"+=100"
    	宽度还可以设置为"hide" "toggle" "show"
delay方法的作用就是用于告诉系统延迟时长
 立即停止当前动画, 继续执行后续的动画
     $("div").stop();
     $("div").stop(false);
     $("div").stop(false, false);
 立即停止当前和后续所有的动画
     $("div").stop(true);
     $("div").stop(true, false);
 立即完成当前的, 继续执行后续动画
     $("div").stop(false, true);
 立即完成当前的, 并且停止后续所有的
     $("div").stop(true, true); 

fade in and fade out:

fadeIn(time,easing,fn)淡入
fadeOut(time,easing,fn)淡出
fadeToggle(time,easing,fn)切换
fadeTo(time,opcity,easing,fn)淡入到opcity透明度

The core methods and attributes on the jQ prototype:

     1、jquery 获取jQ版本号
     2、selector 实例默认的选择器取值
     3、length 实例默认的长度
     3、push 给实例添加新元素
     4、sort 对实例中的元素进行排序
     5、splice 按照指定下标指定数量删除元素,也可以替换删除的元素
     6、toArray 把实例转换为数组返回
                即将真数组转换成伪数组
     7、get  获取指定下标的元素,获取的是原生DOM
             没传参数则返回该数组,传入复数则相当于数组倒数的第几个,正数就返回第几个
     8、eq 获取指定下标的元素,获取的是jQuery类型的实例对象
     9、first 获取实例中的第一个元素,是jQuery类型的实例对象
     10、last 获取实例中的最后一个元素,是jQuery类型的实例对象
     11、each 遍历实例,把遍历到的数据传给回调使用
     12、map  遍历实例,把遍历到的数据传给回调使用,然后把回调的返回值收集起来组成一个新的数组返回   

Loading of DOM elements:

     onload事件会等到DOM元素加载完毕, 并且还会等到资源也加载完毕才会执行
     DOMContentLoaded事件只会等到DOM元素加载完毕就会执行回调
     document.readyState属性有如下的状态:
         uninitialized - 还未开始载入
         loading - 载入中
         interactive - 已加载,文档与用户可以开始交互
         complete - 载入完成    
     onreadystatechange事件就是专门用于监听document.readyState属性的改变的     

DOM manipulation:

      1、empty ==> 清空指定元素中的所有内容
      2、remove ==> 删除所有的元素或指定元素 
      3、html ==> 设置所有元素的内容,获取第一个元素的内容
      4、text ==> 设置所有元素的文本内容,获取所有元素的文本内容
      5、元素.appendTo.指定元素 ==> 将元素添加到指定元素内部的最后
         特点:
            1.如果指定元素有多个,会将元素拷贝多份添加到指定元素中
            2.给appendTo方法传递字符串, 会根据字符串找到所有对应元素后再添加
            3.给appendTo方法传递jQuery对象,会将元素添加到jQuery对象保存的所有指定元素中
            4.给appendTo方法传递DOM元素, 会将元素添加到所有指定DOM元素中
      6、指定元素.append.元素 ==> 将元素添加到指定元素内部的最后      
      7、元素.prependTo.指定元素 ==> 将元素添加到指定元素内部的最前面
         调用者.insertBefore(插入的元素, 参考的元素);
         insertBefore方法, 调用者是谁就会将元素插入到谁里面      
      8、指定元素.prepend.元素 ==> 将元素添加到指定元素内部的最前面  
      9、元素.insertBefore.指定元素  ==>将元素添加到指定元素外部的前面 
         调用者.insertBefore(插入的元素, 参考的元素);
         insertBefore方法, 调用者是谁就会将元素插入到谁里面 
      10、next([expr]) 获取紧邻的后面同辈元素的元素
      11、prev([expr]) 获取元素紧邻的前一个同辈元素
            实现insertAfter需要用到原生JavaScript的nextSibling属性
      12、元素.insertAfter.指定元素  ==>将元素添加到指定元素外部的后面
          指定元素.after.元素  ==>将元素添加到指定元素外部的后面
          元素.insertBefore.指定元素  ==>将元素添加到指定元素外部的前面
          指定元素.before.元素  ==>将元素添加到指定元素外部的前面
      13、元素.replaceAll.指定元素 ==> 替换所有指定元素
      14、指定元素.replaceWith.元素 ==> 替换所有指定元素
      15、clone ==> 复制节点(true深复制,false浅复制)   
      		 nodeType 属性返回以数字值返回指定节点的节点类型。
     				如果节点是元素节点,则 nodeType 属性将返回 1。
     				如果节点是属性节点,则 nodeType 属性将返回 2。      

Element operation:

 内部插入:
     append(content|fn)
     appendTo(content)  注意这两个To方法使用时是新增的元素. appendTo(选择器)
     会将元素添加到指定元素内部的最后
     prepend(content|fn)
     prependTo(content)
     会将元素添加到指定元素内部的最前面
外部插入:
     after(content|fn)
     insertAfter(content)  注意这两个To方法使用时是新增的元素. appendTo(选择器)
     会将元素添加到指定元素外部的后面 
     before(content|fn)
     insertBefore(content)
     会将元素添加到指定元素外部的前面
删除元素:
	 remove([expr])   /   detach([expr])   
     删除指定元素
     区别:
        利用remove删除之后再重新添加,原有的事件无法响应
        利用detach删除之后再重新添加,原有事件可以响应
 	 empty()
     删除指定元素的内容和子元素, 指定元素自身不会被删除
替换元素:         
     replaceWith(content|fn)
	 replaceAll(selector) 注意这个方法使用时是新增的元素. replaceAll(选择器)
    替换所有匹配的元素为指定的元素    
复制元素:
     clone([Even[,deepEven]])
          如果传入false就是浅复制, 如果传入true就是深复制
          浅复制只会复制元素, 不会复制元素的事件
          深复制会复制元素, 而且还会复制元素的事件    

Usage of nth-child():

		nth-child(-n+x)就是前x项
		nth-child(2n)就是偶数项
		nth-child(2n-1)就是奇数项
		nth-child(x)就是第x项

Several methods of indexing:

index()获取当前对象的索引
eq(x)获取索引为x的元素,并将其封装成对象返回
get(x)获取索引为x的元素,不会其封装成对象,而是直接返回成对象       

Selection of parent and child elements:

children(.selected)通过可选的表达式来过滤所匹配的子元素,只考虑子元素而不考虑所有后代元素
find(.selected)通过可选的表达式来过滤所匹配的后代元素
parent(.selected)将查找过滤所匹配的所有父元素 
parents()将查找过滤所匹配的所有祖辈元素     			    

Operations related to jQery attributes:

     1.attr(): 设置或者获取元素的属性节点值
     2.prop(): 设置或者获取元素的属性值
     3.css(): 设置获取样式        
     4.val(): 获取设置value的值
     5.hasClass(): 判断元素中是否包含指定类
     6.addClass(): 给元素添加一个或多个指定的类
     7.removeClass(): 删除元素中一个或多个指定的类
     8.toggleClass(): 没有则添加,有则删除

Related methods of jQuery event operation:

     1.on(type, callback): 注册事件
        1.注册多个相同类型事件, 后注册的不会覆盖先注册的
        2.注册多个不同类型事件, 后注册的不会覆盖先注册的
     2.off(type, callback): 移出事件   
         1.不传参, 会移除所有事件
         2.传递一个参数, 会移除对应类型所有事件
         3.传递两个参数, 会移除对应类型对应事件

       Seeing this, then it means that your JQ is almost learning, you might as well do a few examples yourself to test whether you really master these knowledge points. over!

Guess you like

Origin blog.csdn.net/qq_45731083/article/details/105753689