【javascript常见面试题】常见前端面试题及答案 (20)

比如用.bind(‘click.myCustomRoutine’,function(){…});同样是把匿名函数绑定到click事件(你可以用自己的命名空间多次绑定不同的行为方法上去),当unbind的时候用.unbind(‘click.myCustomRoutine’)即可释放所有绑定到.myCustomRoutine命名空间的click事件,而不会解除其他通过.bind(‘click’)或另外的命名空间所绑定的事件行为。同时,使用命令空间还可以让你一次性unbind所有此命名空间下的自定义事件绑定,通过.unbind(‘.myCustomRoutine’)即可。要注意的是,jQuery的命名空间并不支持多级空间。

因为在jQuery里面,如果用.unbind(‘click.myCustomRoutine.myCustomSubone’),解除的是命名空间分别为myCustomRoutine和myCustomSubone的两个并列命名空间下的所有click事件,而不是”myCustomRoutine下的myCustomSubone子空间”。

82.请说出你可以传递给jQuery方法的四种不同值。

选择器(字符串),HTML(字符串),回调函数,HTML元素,对象,数组,元素数组,jQuery对象等。

83.什么是效果队列?

jQuery中有个动画队列的机制。当我们对一个对象添加多次动画效果时后添加的动作就会被放入这个动画队列中,等前面的动画完成后再开始执行。可是用户的操作往往都比动画快,如果用户对一个对象频繁操作时不处理动画队列就会造成队列堆积,影响到效果。jQuery中有stop这个方法可以停止当前执行的动画,并且它有两个布尔参数,默认值都为false。第一个参数为true时会清空动画队列,第二个参数为true时会瞬间完成掉当前动画。所以,我们经常使用obj.stop(true,true)来停止动画。但是这还不够!正如jQuery文档中的说法,即使第二个参数为true,也仅仅是把当前在执行的动画跳转到完成状态。这时第一个参数如果也为true,后面的队列就会被清空。如果一个效果需要多个动画同时处理,我们仅完成其中的一个而把后面的队列丢弃了,这就会出现意料之外的结果。

84.请指出.get(),[],eq()的区别。

eq:返回是一个jquery对象作用是将匹配的元素集合缩减为一个元素。这个元素在匹配元素集合中的位置变为0,而集合长度变成1。

get:是一个html对象数组作用是取得其中一个匹配的元素。num表示取得第几个匹配的元素。

85.请指出和.fn的区别,或者说出$.fn的用途。

Jquery为开发插件提供了两个方法,分别是:

$.extend(obj);

$.fn.extend(obj);

1.那么这两个分别是什么意思? 
$.extend(obj);是为了扩展jquery本身,为类添加新的方法。

$.fn.extend(obj);给JQUERY对象添加方法。

2..fnfnprototype.fn中的fn是什么意思,其实是prototype,即.fn=$.prototype; 
具体用法请看下面的例子:

$.extend({

 

    add:function(a, b) {

        return a+b;

    }

})

 

$.add(5,8); // return 13

注意没有,这边的调用直接调用,前面不用任何对象。直接$.+方法名

$.fn.extend(obj);对prototype进行扩展,为jquery类添加成员函数,jquery类的实例可以使用这个成员函数。

 $.fn.extend({

 

     clickwhile:function(){

 

         $(this).click(function(){

             alert($(this).val())

         })

     }

 })

 

$(\'input\').clickwhile(); // 当点击输入框会弹出该对象的Value值

注意调用时候前面是有对象的。即$(‘input’)这么个东西。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgddxp.html