前端面试题及答案



1、清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法

浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。

a、使用空标签清除浮动。

    这种方法是在所有浮动标签后面添加一个空标签 定义css clear:both. 弊端就是增加了无意义标签。

b、使用overflow

    给包含浮动元素的父标签添加css属性 overflow:auto; zoom:1; zoom:1用于兼容IE6

c、使用after伪对象清除浮动。

    该方法只适用于非IE浏览器。具体写法可参照以下示例。使用中需注意以下几点。一、该方法中必须为需要清除浮动元素的伪对象中设置 height:0,否则该元素会比实际高出若干像素;



2、讲一下 prototype 是什么东西,原型链的理解,什么时候用 prototype

     prototype是函数对象上面预设的对象属性

    原型链:实例对象的原型__proto__指向new该实例对象的构造函数原型prototype,再指向原始的对象原型Object.prototype,再指向null,形成原型链。

使用prototype的好处是不会产生额外的内存,所有实例化后的对象都会从原型上继承这个属性或方法。当一个子类需要拥有父类的某些属性或方法,该属性或方法可以覆盖,又可以添加自己的属性和方法,这个操作不影响父类,这个时候使用prototype。


3、apply和 call 什么含义,什么区别?

apply:传参的时候是把参数作为一个数组传进去

call:传参的时候是扁平的把每个参数传进去


4:什么是闭包。

闭包就是能够读取其他函数内部变量的函数

闭包的用途:闭包可以用在许多地方。它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。



5、ajax 跨域有哪些方法,jsonp 的原理是什么。

实现方式一:使用jQuery中的$.getJSON方法获取数据

实现方式二:使用jQuery中的$.Ajax方法获取数据

实现方式三:使用原生JS实现JSONP

Jsonp(json with padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。

Jsonp是为了解决ajax跨域发送http请求出现的,利用Script标签的特性跨域。浏览器由于安全考虑,在编写ajax程序时,httprequest/xmlhttp都不能发送非本域的http请求,是被浏览器所禁止的。所以ajax本身是无法跨域的。而jsonp就是利用了

你可能感兴趣的:(前端面试题及答案)