day17

1-jquery 中的$.each 和$(选择器).each()有什么区别?

  在遍历DOM时,通常用$(selector).each(function(index,element))函数;

  在遍历数据时,通常用$.each(dataresource,function(index,element))函数。

2-query 中的$.each 和 js 中的 foeEach()有什么区别?

  1.在遍历数组时:

    回调函数中参数的位置不一样,forEach中为第一个参数为ele,第二个为index。each中第一个为index,第二个为ele;

    回调函数中是否有返回值,forEach中没有返回值,each有返回值,返回被遍历的数组

  2.遍历对象

    forEach不能遍历对象,可以使用for in;

    而each可以通过jq的讲台方法来遍历,即$.each(obj,function(key,value){})

3-window.onload 和$(docuMent).ready() 有什么区别?

  1、执行时间上的区别:window.onload必须等到页面内(包括图片的)所有元素加载到浏览器中后才能执行。而$(document).ready(function(){})是DOM结构加载完毕后就会执行。

  2、编写个数不同:window.onload不能同时写多个,如果有多个window.onload,则只有最后一个会执行,它会把前面的都覆盖掉。$(document).ready(function(){})则不同,它可以编写多个,并且每一个都会执行。

  3、简写方法:window.onload没有简写的方法,$(document).ready(function(){})可以简写为$(function(){})。

  由于在$(document).ready()方法内注册的事件,只要DOM就绪就会被执行,因此可能此时元素的关联文件未下载完,例如与图片有关的HTML下载完毕,并且已经解析为DOM树了,但很有可能图片还未加载完毕,所以例如图片的高度和宽度这样的属性此时不一定有效。

  load()方法会在元素的onload事件中绑定一个处理函数。如果处理函数绑定在元素上,则会在元素的内容加载完毕后触发。

4-jquery 实现链式编程的原理是什么?

  实现链式编程的核心,是对象中的每一个方法都会返回当前对象。

  var 对象 = {

    方法名:function(){

      ...

      return this; // 实现链式编程的核心this

    }

  }

  在方法中,js提供一个this的关键字,表示当前对象。

posted @ 2021-03-02 11:20  qwerfd  阅读(39)  评论(0)    收藏  举报