前端js面试题

1.jq 常见选择器?
2.jQuery 插件实现方式,分别介绍?
3.bind 和 live 的区别?
4.DOM 对象互相转换 jQuery 对象
5.给出一个数组如何去掉重复的项?
6.闭包是什么?
7.什么是响应式网页?
8.最熟悉的 web 的前端框架?
9.前端页面有哪三层构成,分别是什么?作用是什么?

精解:

1, jquery常见选择器

2,jQuery插件封装方法

3,bind和live的区别

   答:如果通过jquery添加的层和对象一定要用live(),其他的都不起作用。

    区别如下:

     1)live运行完之后不释放空间,太多的使用会占用内存,bind()则点击完之后释放空间        

$('.clickMe').bind('click',function(){
    $('body').append('
        Anothertarget.
     ');
});

原理上,当点击了这个元素,就会弹出一个警告框。然后,想象一下这之后有另一个元素添加进来了。

尽管这个新的元素也能够匹配选择器 ".clickMe",但是由于这个元素是在调用.bind()之后添加的,所以点击这个元素不会有任何效果。

.live()就提供了对应这种情况的方法,如果我们是这样绑定click事件的:

$('.clickMe').live('click',function(){
alert('Live handler called');
});

然后再添加一个新元素

$('body').append('
        Anothertarget.
     ');

然后再点击新增的元素,他依然能够触发事件处理函数。

2)bind方法可以绑定任何javaScript的事件,而live方法在JQuery1.3的时候只支持click,keydown,keyup,keypress,mousedown,mouseover,mousemove,mouseout,mouseover和mouseup.在jQuery1.4中,甚至也支持focus和blue事件了(映射到更合适,并且可以冒泡的focusin和focusout上)。另外,在jQuery1.4.1中,也能支持hover(映射到“mouseenter  mouseleave”).

3)live()并不完全支持通过dom遍历的方法找到的元素。取而代之的是,应当总是在一个选择器后面直接使用live()方法。

4)当一个元素采用Live方法进行事件的绑定的时候,如果想阻止事件的传递或冒泡,就要在函数中return false.仅仅调用stopPropagation()是无法阻止事件的传递或者冒泡的、

4.jQuery与dom对象的相互转换

   1)dom转换成jQuery

        $('.class')或document.getElementById("");

    2)jQuery转换成dom

     方法一: jQuery 对象是一个数据对象,可以通过 [index] 的方法,来得到相应的 DOM 对象。

               如: 

var $v = $("#v"); //jQuery 对象
var v = $v[0]; //DOM 对象
alert(v.checked); //检测这个checkbox是否被选中
 方法二: jQuery 本身提供,通过.get(index) 方法得到相应的 DOM 对象

         如:

var $v = $("#v"); //jQuery 对象
var v = $v.get(0); //DOM对象 ( $v.get()[0] 也可以 )
alert(v.checked); //检测这个 checkbox 是否被选中

5,js高效去除数组中重复元素

6,javaScript闭包

7,响应式网页

8,前端页面的结构及作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值