手记

前端面试题整理(部分)

1、经常遇到的浏览器的兼容性有哪些?原因?解决方法是什么?

PNG24位的图片在ie6浏览器上出现背景,解决方案是做成PNG8

浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}

ie6双边距bug:块属性标签float后,又有横行的margin情况下,在IE6显示的margin比设置的大

IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义的属性;在FireFox下,只能使用getAttribute()获取自定义属性;解决方法:统一通过getAttribute()获取自定义属性

IE下,even对象有x,y属性,但是没有pageX,pageY属性;在Firefox下,even对象有pageX,pageY属性,但是没有x,y属性;解决方法:(条件注释)缺点是在IE浏览器下可能会增加额外的HTTP请求数

Chrome中文界面下默认会将小于12px的文本强制按照12px显示,可通过加入CSS属性-webkit-text-size-adjust:none解决

2、jsvascript的等号,=和==和===的区别

一个等号 = 是赋值;

==   用于比较   判断 两者相等      ==在比较的时候可以转自动换数据类型

===用于严格比较   判断两者严格相等     ===严格比较,不会进行自动转换,要求进行比较的操作数必须类型一致,不一致时返回flase。

3、jquery 中如何将数组转化为json字符串,然后再转化回来?

jQuery.fn == jQuery.prototype

jQuery中没有提供这个功能,所以你需要先编写两个jQuery的扩展:

    $.fn.stringifyArray = function(array) {

        return JSON.stringify(array)

    }

    $.fn.parseArray = function(array) {

        return JSON.parse(array)

    }

    然后调用:

    $("").stringifyArray(array)  

4、JQuery的源码看过吗?能不能简单说一下它的实现原理?

原理就是对常用操作的封装,而且解决了兼容性问题

5、如何解决跨域问题?

jsonp、 iframe、window.name、window.postMessage、服务器上设置代理页面

6、documen.write和 innerHTML的区别

document.write只能重绘整个页面

innerHTML可以重绘页面的一部分

7、页面导入样式时,使用link和@import有什么区别?

    (1)link属于XHTML标签,除了加载CSS外,还能用于定义RSS, 定义rel连接属性等作用;而@import是CSS提供的,只能用于加载CSS;

    (2)页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;

    (3)import是CSS2.1 提出的,只在IE5以上才能被识别,而link是XHTML标签,无兼容问题;

8、请描述一下 cookies,sessionStorage 和 localStorage 的区别?

    cookie在浏览器和服务器间来回传递。 sessionStorage和localStorage不会

    sessionStorage和localStorage的存储空间更大;

    sessionStorage和localStorage有更多丰富易用的接口;

    sessionStorage和localStorage各自独立的存储空间;

9、写一个匿名函数调用

    (function(){alert("hello world")}());

10、Jquery与jQuery UI 有啥区别?

    *jQuery是一个js库,主要提供的功能是选择器,属性修改和事件绑定等等。

    *jQuery UI则是在jQuery的基础上,利用jQuery的扩展性,设计的插件。

     提供了一些常用的界面元素,诸如对话框、拖动行为、改变大小行为等等。


1人推荐
随时随地看视频
慕课网APP